Slide 54
Slide 54 text
54
$meta = new ClassMeta("MyTestClass", "nrslib");
$meta->setupClass()
->setConstructor(function ($define) {
$define->addArgument('testField', 'string')
->addBody('$this->testField = $testField;');
});
$meta->setupFields()
->addField('testField', 'string')
->addField('testField2', 'string', AccessLevel::public());
$meta->setupMethods()
->addMethod('test', function($define) {
$define->setAccessLevel(AccessLevel::public())
->addArgument('test', 'string')
->addArgument('test2', 'string');
})
->addMethod('test2', function($define) {
$define->addBody('$testField = 1;');
});
$compiler = new ClassCompiler();
$source = $compiler->compile($meta);
/**
* @param string $test
* @param string $test2
*/
public function test(string $test, string $test2)
{
}
/**
*
*/
private function test2()
{
$testField = 1;
}
}