/** * (non-PHPdoc) * @see Generator/Admingenerator\GeneratorBundle\Generator.Generator::build() * @see http://juliusbeckmann.de/blog/php-benchmark-isset-or-array_key_exists.html * // Key is NULL * $array['key'] = NULL; * var_dump(isset($array['key'])); // false * var_dump(array_key_exists('key', $array)); // true */ public function build() { $generator = new AdminGenerator($this->getGeneratorYml()); $generator->setBaseAdminTemplate($this->container->getParameter('admingenerator.base_admin_template')); $generator->setFieldGuesser($this->getFieldGuesser()); $generator->setMustOverwriteIfExists($this->container->getParameter('admingenerator.overwrite_if_exists')); $generator->setTemplateDirs(array(__DIR__ . '/../Resources/templates/Doctrine')); $generator->setBaseController('Admingenerator\\GeneratorBundle\\Controller\\Doctrine\\BaseController'); $generator->setBaseGeneratorName($this->getBaseGeneratorName()); $builders = $generator->getFromYaml('builders', array()); if (array_key_exists('list', $builders)) { $generator->addBuilder(new ListBuilderAction()); $generator->addBuilder(new ListBuilderTemplate()); $generator->addBuilder(new FiltersBuilderType()); } if (array_key_exists('delete', $builders)) { $generator->addBuilder(new DeleteBuilderAction()); } if (array_key_exists('edit', $builders)) { $generator->addBuilder(new EditBuilderAction()); $generator->addBuilder(new EditBuilderTemplate()); $generator->addBuilder(new EditBuilderType()); } if (array_key_exists('new', $builders)) { $generator->addBuilder(new NewBuilderAction()); $generator->addBuilder(new NewBuilderTemplate()); $generator->addBuilder(new NewBuilderType()); } $generator->writeOnDisk($this->getCachePath($generator->getFromYaml('params.namespace_prefix'), $generator->getFromYaml('params.bundle_name'))); }