/** * Add custom configurator extension. * @return self */ public function addExtension($name, CompilerExtension $extension) { if (isset(self::$reserved[$name])) { throw new Nette\InvalidArgumentException("Name '{$name}' is reserved."); } $this->extensions[$name] = $extension->setCompiler($this, $name); return $this; }
/** * Processes configuration data. Intended to be overridden by descendant. * @return void */ public function loadConfiguration() { parent::loadConfiguration(); $container = $this->getContainerBuilder(); $container->addDefinition($this->prefix('configMapper'))->setFactory('FormsModule\\Mappers\\ConfigMapper', array($container->parameters['configDir'] . '/config.neon')); $this->compiler->addExtension('twBootstrapRenderer', new \Kdyby\BootstrapFormRenderer\DI\RendererExtension()); }
/** * Processes configuration data. Intended to be overridden by descendant. * @return void */ public function loadConfiguration() { parent::loadConfiguration(); $container = $this->getContainerBuilder(); $config = $this->getConfig($this->defaults); $container->addDefinition($this->prefix('extractor'))->setClass('TranslatorModule\\Extraction\\Extractor')->addSetup('$service->addFilter(?)', array(new \Nette\DI\Statement('TranslatorModule\\Extraction\\Filters\\LatteFilter')))->addSetup('$service->addFilter(?)', array(new \Nette\DI\Statement('TranslatorModule\\Extraction\\Filters\\PhpFilter'))); $translator = $container->addDefinition($this->prefix('translator'))->setClass('TranslatorModule\\Translator', array('%productionMode%'))->addSetup('setCache', array('@cacheStorage')); foreach ($config['dictionaries'] as $dictionary) { $translator->addSetup('$service->addDictionary(?)', array(new \Nette\DI\Statement('TranslatorModule\\Dictionary', array($dictionary)))); } // Commands $container->addDefinition($this->prefix('extractCommand'))->setClass('TranslatorModule\\Commands\\ExtractCommand')->addTag('command'); }
/** * Processes configuration data. Intended to be overridden by descendant. * @return void */ public function loadConfiguration() { parent::loadConfiguration(); $container = $this->getContainerBuilder(); // macros $container->getDefinition('nette.latte')->addSetup('AssetsModule\\Macros\\CssMacro::install(?->compiler, ?, ?)', array('@self', '@venne.moduleHelpers', '%wwwDir%'))->addSetup('AssetsModule\\Macros\\JsMacro::install(?->compiler, ?, ?)', array('@self', '@venne.moduleHelpers', '%wwwDir%')); // collections $container->addDefinition($this->prefix('cssFileCollection'))->setClass('AssetsModule\\CssFileCollection'); $container->addDefinition($this->prefix('jsFileCollection'))->setClass('AssetsModule\\JsFileCollection'); // compilers $cssCompiler = $container->addDefinition($this->prefix('cssCompiler'))->setClass('WebLoader\\Compiler')->setFactory('WebLoader\\Compiler::createCssCompiler', array($this->prefix('@cssFileCollection'), '%wwwDir%/cache'))->addSetup('$service->addFileFilter(?)', array($this->prefix('@cssUrlsFilter')))->addSetup('setCheckLastModified', array('%debugMode%'))->addSetup('setJoinFiles', array(!$container->parameters['debugMode']))->setAutowired(FALSE); $jsCompiler = $container->addDefinition($this->prefix('jsCompiler'))->setClass('WebLoader\\Compiler')->setFactory('WebLoader\\Compiler::createJsCompiler', array($this->prefix('@jsFileCollection'), '%wwwDir%/cache'))->addSetup('setCheckLastModified', array('%debugMode%'))->addSetup('setJoinFiles', array(!$container->parameters['debugMode']))->setAutowired(FALSE); // loaders $container->addDefinition($this->prefix('cssLoader'))->setClass('AssetsModule\\CssLoader', array($this->prefix('@cssCompiler'), '/cache'))->setShared(FALSE)->setAutowired(FALSE)->addTag('widget', 'css'); $container->addDefinition($this->prefix('jsLoader'))->setClass('AssetsModule\\JavaScriptLoader', array($this->prefix('@jsCompiler'), '/cache'))->setShared(FALSE)->setAutowired(FALSE)->addTag('widget', 'js'); // filters $container->addDefinition($this->prefix('cssUrlsFilter'))->setClass('WebLoader\\Filter\\CssUrlsFilter', array('%wwwDir%'))->addSetup('$service = new WebLoader\\Filter\\CssUrlsFilter(?, $this->parameters[\'basePath\'])', array('%wwwDir%')); $container->addDefinition($this->prefix('cssMinFilter'))->setClass('AssetsModule\\Filters\\CssMinFilter'); $container->addDefinition($this->prefix('jsMinFilter'))->setClass('AssetsModule\\Filters\\JsMinFilter'); if (!$container->parameters['debugMode']) { $cssCompiler->addSetup('addFilter', $this->prefix('@cssMinFilter')); $jsCompiler->addSetup('addFilter', $this->prefix('@jsMinFilter')); } }
public function afterCompile(Code\ClassType $class) { parent::afterCompile($class); $init = $class->methods['initialize']; $init->addBody('Kdyby\\Replicator\\Container::register();'); }