Example #1
0
<?php

namespace CodeGenerator;

require 'vendor/autoload.php';
$file = new FileBlock();
$closureFunction = new FunctionBlock(function ($bar = null) {
    return 'foo';
});
$file->addBlock($closureFunction);
$function = new FunctionBlock('return true;');
$file->addBlock($function);
$method = new MethodBlock('_bar');
$method->setVisibility('private');
$method->addParameter(new ParameterBlock('foo'));
$method->addParameter(new ParameterBlock('bar'));
$method->addParameter(new ParameterBlock('zoo'));
$property = new PropertyBlock('foo');
$property->setDefaultValue('foo');
$constant = new ConstantBlock('FOO', 1);
$class = new ClassBlock('Foo');
$class->addMethod($method);
$class->addProperty($property);
$class->addConstant($constant);
$file->addBlock($class);
$childClass = new ClassBlock('Bar', 'Foo');
$file->addBlock($childClass);
$reflectionClass = new \ReflectionClass('\\CodeGenerator\\FunctionBlock');
$reflectedClass = ClassBlock::buildFromReflection($reflectionClass);
$file->addBlock($reflectedClass);
echo $file->dump();