perfumer / contracts
v0.14.0
2017-09-03 20:44 UTC
Requires
- php: >=7.1.0
- doctrine/annotations: ~1
- friendsofphp/php-cs-fixer: ~2
- phpunit/phpunit: ~5 || ~6
- zendframework/zend-code: ^3.1
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的类注解修改方法生成器。