public function generateCode($className, $parentName) { foreach ($this->extensions as $extension) { $extension->beforeCompile(); $this->builder->addDependency(Nette\Reflection\ClassType::from($extension)->getFileName()); } $classes = $this->builder->generateClasses($className, $parentName); $classes[0]->addMethod('initialize'); foreach ($this->extensions as $extension) { $extension->afterCompile($classes[0]); } return implode("\n\n\n", $classes); }
/** @internal */ public function generateCode(string $className, string $parentName = NULL) : array { $this->builder->prepareClassList(); foreach ($this->extensions as $extension) { $extension->beforeCompile(); $this->dependencies[] = (new \ReflectionClass($extension))->getFileName(); } $classes = $this->builder->generateClasses($className, $parentName); $classes[0]->addMethod('initialize'); $this->addDependencies($this->builder->getDependencies()); foreach ($this->extensions as $extension) { $extension->afterCompile($classes[0]); } return $classes; }
/** @internal */ public function generateCode($className, $parentName = NULL) { $this->builder->prepareClassList(); $state = serialize($this->builder->getDefinitions()); foreach ($this->extensions as $extension) { $extension->beforeCompile(); $rc = new \ReflectionClass($extension); $this->dependencies[] = $rc->getFileName(); if ($state !== serialize($this->builder->getDefinitions())) { $this->builder->prepareClassList(); $state = serialize($this->builder->getDefinitions()); } } $classes = $this->builder->generateClasses($className, $parentName); $classes[0]->addMethod('initialize'); $this->addDependencies($this->builder->getDependencies()); foreach ($this->extensions as $extension) { $extension->afterCompile($classes[0]); } return $classes; }