beforeCompile() public method

Adjusts DI container before is compiled to PHP class. Intended to be overridden by descendant.
public beforeCompile ( ) : void
return void
コード例 #1
0
ファイル: Extension.php プロジェクト: ytnuk/translation
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $translator = $builder->getDefinition($builder->getByType(Nette\Localization\ITranslator::class));
     $translator->setClass(Translator::class, $translator->getFactory()->arguments);
 }
コード例 #2
0
ファイル: UtilsExtension.php プロジェクト: trejjam/utils
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $config = $this->createConfig();
     /** @var Nette\DI\ServiceDefinition[] $classes */
     $classes = [];
     foreach ($this->classesDefinition as $k => $v) {
         list($firstKey) = explode('.', $k);
         if (!isset($config[$firstKey]) || !isset($config[$firstKey]['enable']) || $config[$firstKey]['enable']) {
             $classes[$k] = $builder->getDefinition($this->prefix($k));
         }
     }
     /** @var Nette\DI\ServiceDefinition[] $factories */
     $factories = [];
     foreach ($this->factoriesDefinition as $k => $v) {
         $factories[$k] = $builder->getDefinition($this->prefix($k));
     }
     $classes['layout.baseLayout']->addSetup('setConfigurations', ['configurations' => $config]);
     if ($config['labels']['enable']) {
         $classes['labels']->addSetup('setConfigurations', ['configurations' => $config['labels']]);
         $classes['layout.baseLayout']->setArguments([$this->prefix('@labels')]);
     }
     $factories['components.filterFactory']->setArguments([$config['components']['filter']['template']]);
     $factories['components.pagingFactory']->setArguments([$config['components']['paging']['template']]);
 }
コード例 #3
0
ファイル: Extension.php プロジェクト: ytnuk/application
 public function beforeCompile()
 {
     parent::beforeCompile();
     $decorator = current($this->compiler->getExtensions(Nette\DI\Extensions\DecoratorExtension::class));
     if ($decorator instanceof Nette\DI\Extensions\DecoratorExtension) {
         $decorator->addSetups(Control::class, ['setCacheStorage']);
     }
 }
コード例 #4
0
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $router = $builder->getDefinition('router');
     $moduleRouters = array_keys($builder->findByTag(self::TAG_MODULE_ROUTER));
     foreach ($moduleRouters as $serviceName) {
         $router->addSetup('offsetSet', array(NULL, '@' . $serviceName));
     }
     $router->addSetup('offsetSet', array(NULL, $this->prefix('@router')));
 }
コード例 #5
0
 public function beforeCompile()
 {
     parent::beforeCompile();
     $containerBuilder = $this->getContainerBuilder();
     foreach ($containerBuilder->findByTag(static::TAG_CONTAINER_CONTROL_CONTROL) as $serviceName => $containerControlControlTags) {
         Validators::assertField($containerControlControlTags, 'name', 'string');
         Validators::assertField($containerControlControlTags, 'containerControl', 'string');
         $containerControlService = $containerBuilder->getDefinition($this->prefix($containerControlControlTags['containerControl'] . 'ContainerControlFactory'));
         $containerControlService->addSetup('?->registerControlFactory(?, ?)', ['@self', $containerControlControlTags['name'], '@' . $serviceName]);
     }
 }
コード例 #6
0
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $config = $this->getConfig($this->defaults);
     if (!is_dir($debugDir = $builder->expand('%tempDir%/debug'))) {
         @mkdir($debugDir, 0777, true);
     }
     foreach (array('filterStorage', 'bridgeStorage') as $pathSystem) {
         if (!is_dir($pathSystem = $builder->expand($config[$pathSystem]['path']))) {
             @mkdir($pathSystem, 0777, true);
         }
     }
 }
コード例 #7
0
ファイル: Extension.php プロジェクト: vitkutny/version
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $filter = $builder->getDefinition($this->prefix('filter'));
     if ($request = $builder->getByType(Nette\Http\IRequest::class)) {
         $filter->addSetup('setRequest', [$builder->getDefinition($request)]);
     }
     if ($storage = $builder->getByType(Nette\Caching\IStorage::class)) {
         $filter->addSetup('setStorage', [$builder->getDefinition($storage), $this->config['expire']]);
     }
     if ($engine = $builder->getByType(Nette\Bridges\ApplicationLatte\ILatteFactory::class)) {
         $builder->getDefinition($engine)->addSetup('addFilter', ['version', $filter]);
     }
 }
コード例 #8
0
ファイル: Extension.php プロジェクト: ytnuk/web
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $router = $builder->getDefinition($builder->getByType(Nette\Application\IRouter::class));
     $router->setFactory(Domain\Router\Factory::class);
     $router->setArguments([$builder->parameters['wwwDir']]);
     foreach ($builder->findByType(Domain\Router\Filter\In::class) as $filterIn) {
         $router->addSetup('addFilterIn', [$filterIn]);
     }
     foreach ($builder->findByType(Domain\Router\Filter\Out::class) as $filterOut) {
         $router->addSetup('addFilterOut', [$filterOut]);
     }
     $router->addSetup('create');
     $application = $builder->getDefinition($builder->getByType(Nette\Application\Application::class));
     $application->addSetup('$errorPresenter', [$this->config['error']['presenter']]);
     $application->addSetup('$service->onError[] = ?', [Ytnuk\Web\Error\Presenter::class . '::onError']);
 }
コード例 #9
0
ファイル: FormsExtension.php プロジェクト: nextras/forms
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $builder->getDefinition('nette.latteFactory')->addSetup('?->onCompile[] = function ($engine) { Nextras\\Forms\\Bridges\\Latte\\Macros\\BS3InputMacros::install($engine->getCompiler()); }', ['@self']);
 }
コード例 #10
0
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $builder->getDefinition('nette.latteFactory')->addSetup('Nextras\\Forms\\Bridges\\Latte\\Macros\\BS3InputMacros::install(?->getCompiler())', array('@self'));
 }
コード例 #11
0
ファイル: YadupExtension.php プロジェクト: meridius/yadup
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $builder->getDefinition('nette.presenterFactory')->addSetup('setMapping', array(array('Yadup' => 'Yadup\\*Module\\*Presenter')));
 }
コード例 #12
0
 public function beforeCompile()
 {
     parent::beforeCompile();
 }
コード例 #13
0
ファイル: MediaExtension.php プロジェクト: brosland/media
 public function beforeCompile()
 {
     parent::beforeCompile();
     $builder = $this->getContainerBuilder();
     $builder->getDefinition('nette.latteFactory')->addSetup(\Brosland\Media\Latte\MediaMacros::class . '::install(?->getCompiler())', ['@self']);
 }