perfumer/contracts

此包已被放弃且不再维护。作者建议使用 perfumerlabs/perfumer 包。

代码生成工具

v0.14.0 2017-09-03 20:44 UTC

This package is auto-updated.

Last update: 2022-07-11 06:13:55 UTC


README

Barman 是一个用于生成 PHP 类的工具。它使用 zend-code 生成类,并使用 Doctrine Annotations 添加注释,以以所需方式更改类和方法的生成器。

Barman 提供基于注释的 DSL,用于描述方法执行顺序并生成单元测试。

内置注释

  • 别名 - 用变量注释替换方法作用域中的字符串变量
  • 上下文 - 定义上下文类或作为步骤使用时调用上下文对象
  • 自定义 - 定义在合约类中调用自定义方法
  • 错误 - 验证失败时调用上下文的方法
  • 注入 - 用变量注释替换字符串变量(位于上下文方法注释作用域内)
  • 注入 - 定义注入的类或原始类型或作为步骤使用时调用注入对象
  • 输出 - 此变量将由方法返回
  • 属性 - 将类属性用作变量
  • 服务对象 - 调用方法作用域内的对象的方法(即 $some_object->someMethod())
  • 服务父类 - 调用父类的方法(即 parent::someMethod())
  • 服务属性 - 调用类属性的方法(即 $this->some_property->someMethod())
  • 服务自身 - 调用类的静态方法(即 self::someMethod())
  • 服务静态 - 调用某个类的静态方法(即 SomeClass::someMethod())
  • 服务当前 - 调用类的方法(即 $this->someMethod())
  • 测试 - 为此方法生成单元测试

注释字段

  • 别名
    • name {string} - 范围内变量的名称
    • variable {Annotation} - 将替换变量的对象注释
  • 上下文(继承自步骤)
    • name {string} - 上下文的简称
    • class {string} - 类的完全限定名称
  • 自定义(继承自步骤)
  • 错误(继承自上下文)
  • 注入
    • name {string} - 上下文方法中的参数名称
    • variable {Annotation} - 将替换参数的对象注释
  • 注入(继承自步骤)
    • name {string} - 注入的简称
    • type {string} - 类或原始类型的完全限定名称
  • 输出
  • 属性
    • name {string} - 类属性的名称
  • 服务对象(继承自步骤)
    • name {string} - 范围内的对象名称
  • 服务父类(继承自步骤)
  • 服务属性(继承自步骤)
    • name {string} - 类属性的名称
  • 服务自身(继承自步骤)
  • 服务静态(继承自步骤)
    • name {string} - 类的完全限定名称
  • 服务当前(继承自步骤)
  • 步骤
    • method {string} - 被调用对象的方法名称
    • arguments {array} - 传递给方法的自变量
    • return {string|array} - 返回的变量名称
    • if {string} - 如果此为真,则步骤继续
    • unless {string} - 如果此为假,则步骤继续
  • 测试

生命周期(创建自己的注解)

  • 生成器被设置为类注解。
  • 在类注解上调用onCreate()。
  • 实现了ClassAnnotationMutator的类注解修改类注解。
  • 在类注解上调用onMutate()。
  • 生成器被设置为方法注解。
  • 在方法注解上调用onCreate()。
  • 实现了MethodAnnotationMutator的类注解修改方法注解。
  • 实现了MethodAnnotationMutator的方法注解修改方法注解。
  • 在方法注解上调用onMutate()。
  • 实现了StepGeneratorMutator的方法注解修改步骤生成器。
  • 实现了StepGeneratorMutator的类注解修改步骤生成器。
  • 实现了MethodGeneratorMutator的类注解修改方法生成器。