public function afterCompile(Nette\PhpGenerator\ClassType $class)
{
$initialize = $class->getMethod('initialize');
$container = $this->getContainerBuilder();
if ($this->debugMode && $this->config['debugger']) {
$initialize->addBody($container->formatPhp('?;', array(new Nette\DI\Statement('@Tracy\\Bar::addPanel', array(new Nette\DI\Statement('Nette\\Bridges\\DITracy\\ContainerPanel'))))));
}
foreach (array_filter($container->findByTag('run')) as $name => $on) {
$initialize->addBody('$this->getService(?);', array($name));
}
if (!empty($this->config['accessors'])) {
$definitions = $container->getDefinitions();
ksort($definitions);
foreach ($definitions as $name => $def) {
if (Nette\PhpGenerator\Helpers::isIdentifier($name)) {
$type = $def->getImplement() ?: $def->getClass();
$class->addDocument("@property {$type} \${$name}");
}
}
}
}