addConfig() public method

Adds new configuration.
public addConfig ( array $config ) : self
$config array
return self
コード例 #1
0
 protected function _before()
 {
     $this->compiler = new \Nette\DI\Compiler();
     $this->compiler->addConfig(['parameters' => ['debugMode' => TRUE]]);
     $this->compiler->addExtension('params', new \WebChemistry\Parameters\DI\ParametersExtension());
     $this->compiler->addExtension('http', new \Nette\Bridges\HttpDI\HttpExtension());
     $this->compiler->addExtension('mock', new MockExtension());
 }
コード例 #2
0
 public function testOptions()
 {
     $this->compiler->setClassName('Container_Controls');
     $this->compiler->addConfig(['controls' => ['date' => ['format' => 'foo'], 'translations' => ['enable' => TRUE, 'date' => 'bar']]]);
     $this->compile();
     eval($this->compile());
     $container = new Container_Controls();
     $count = count(\Nette\Forms\Validator::$messages);
     $container->initialize();
     $this->assertNotSame($count, count(\Nette\Forms\Validator::$messages));
     $this->assertSame('bar', \Nette\Forms\Validator::$messages[\WebChemistry\Forms\Controls\Date::VALID]);
     $this->assertSame('foo', \WebChemistry\Forms\Controls\Date::$dateFormat);
 }
コード例 #3
0
 public function testCustomName()
 {
     $this->compiler->addConfig(['multiplier' => ['name' => 'addCustom']]);
     $code = $this->fixCompile($this->compiler);
     $this->assertContains('WebChemistry\\Forms\\Controls\\Multiplier::register(\'addCustom\');', $code);
 }
コード例 #4
0
ファイル: Configurator.php プロジェクト: pt24/bootstrap
 /**
  * @return string
  * @internal
  */
 public function generateContainer(DI\Compiler $compiler)
 {
     $loader = $this->createLoader();
     $compiler->addConfig(['parameters' => $this->parameters]);
     $fileInfo = [];
     foreach ($this->files as $info) {
         if (is_scalar($info[0])) {
             $fileInfo[] = "// source: {$info['0']} {$info['1']}";
             $info[0] = $loader->load($info[0], $info[1]);
         }
         $compiler->addConfig($this->fixCompatibility($info[0]));
     }
     $compiler->addDependencies($loader->getDependencies());
     $builder = $compiler->getContainerBuilder();
     $builder->addExcludedClasses($this->autowireExcludedClasses);
     foreach ($this->defaultExtensions as $name => $extension) {
         list($class, $args) = is_string($extension) ? [$extension, []] : $extension;
         if (class_exists($class)) {
             $args = DI\Helpers::expand($args, $this->parameters, TRUE);
             $compiler->addExtension($name, (new \ReflectionClass($class))->newInstanceArgs($args));
         }
     }
     $this->onCompile($this, $compiler);
     $classes = $compiler->compile();
     if (!empty($builder->parameters['container']['parent'])) {
         $classes[0]->setExtends($builder->parameters['container']['parent']);
     }
     return implode("\n", $fileInfo) . "\n\n" . implode("\n\n\n", $classes) . (($tmp = $builder->parameters['container']['class']) ? "\nclass {$tmp} extends {$builder->getClassName()} {}\n" : '');
 }
コード例 #5
0
ファイル: Configurator.php プロジェクト: phalette/pidic
 /**
  * @param Compiler $compiler
  * @return string
  */
 public function generateContainer(Compiler $compiler)
 {
     // Load configs
     $loader = new Loader();
     $compiler->addConfig(['parameters' => $this->parameters]);
     foreach ($this->configs as $config) {
         $compiler->addConfig($loader->load($config));
     }
     $compiler->addDependencies($loader->getDependencies());
     // Exclude classes
     $builder = $compiler->getContainerBuilder();
     $builder->addExcludedClasses($this->excludedClasses);
     // Fire events
     foreach ($this->onCompile as $cb) {
         call_user_func_array($cb, [$compiler]);
     }
     // Compile container
     $classes = $compiler->compile();
     $classes[0]->setExtends(PiDiContainer::class);
     return implode("\n", []) . "\n\n" . implode("\n\n\n", $classes);
 }