nrslib / cfg
v0.1.9
2019-11-26 08:29 UTC
Requires
- php: ^7.2
- nikic/php-parser: 4.2.5
Requires (Dev)
- phpunit/phpunit: ^8.0
README
类文件生成器
快速示例
use nrslib\Cfg\ClassRenderer;
use nrslib\Cfg\Meta\Classes\ClassMeta;
$meta = new ClassMeta('MyTestClass', 'nrslib');
$renderer = new ClassRenderer();
echo $renderer->render($meta);
设置
类
类
$meta = new ClassMeta('MyTestClass', 'nrslib');
$meta->setupClass()
->addUse('nrslib\Cfg\ClassRenderer')
->addUse('nrslib\Cfg\Meta\Classes\ClassMeta')
->setExtend('SuperClass')
->addImplement('MyInterface')
->addImplement('MyInterface2')
->setConstructor(function ($define) {
$define
->addArgument('renderer', 'ClassRenderer')
->addBody('$this->renderer = $renderer;')
->addArgument('meta', 'ClassMeta')
->addBody('$this->meta = $meta;');
});
字段
$meta = new ClassMeta('MyTestClass', 'nrslib');
$meta->setupFields()
->addField('testField', 'string')
->addField('testField2', 'string', AccessLevel::public())
->addField('renderer', 'ClassRenderer')
->addField('meta', 'ClassMeta');
方法
$meta = new ClassMeta('MyTestClass', 'nrslib');
$meta->setupMethods()
->addMethod('test', function ($define) {
$define->setAccessLevel(AccessLevel::public())
->addArgument('test', 'string')
->addArgument('test2', 'string');
})
->addMethod('render', function ($define) {
$define->setReturnType('void')
->addBody('$this->renderer->render($this->meta);');
});
接口
接口
$meta = new InterfaceMeta('MyInterface', 'nrslib');
$meta->getInterfaceSetting()
->addExtend('MyInterface')
->addExtend('MyInterface2');
方法
$meta = new InterfaceMeta('MyInterface', 'nrslib');
$meta->getMethodsSetting()
->addMethod('testMethod', function($define) {
$define->addArgument('arg', 'string')
->addArgument('arg2', 'string');
})
->addMethod('testMethod2', function($define) {
$define->setReturnType('void');
});