예제 #1
0
 /**
  * @var IContainer
  * @return \Conpago\DI\IContainer
  */
 protected function getContainer()
 {
     if (!$this->container) {
         $this->container = $this->builder->build();
     }
     return $this->container;
 }
 function registerWiring(IContainerBuilder $container)
 {
     $container->setConstant('twig.options.auto_reload', true);
     $container->define('twig_loader_service')->setClass('Twig_Loader_Filesystem')->addArgument('constant', 'view.paths');
     $container->define('twig_escaper_service')->setClass('Twig_Extension_Escaper')->addArgument('value', true);
     $container->define('twig_environment_service')->setClass('Twig_Environment')->setArguments(array(array('component', 'twig_loader_service'), array('array', array('cache' => array('constant', 'application.cache'), 'debug' => array('constant', 'application.debug'), 'auto_reload' => array('constant', 'twig.options.auto_reload')))))->addMethod('addExtension', array(array('component', 'twig_escaper_service')));
 }
 public function registerWiring(IContainerBuilder $builder)
 {
     $components = dirname(__FILE__) . '/Resources/ComponentsConfiguration.php';
     $web = dirname(__FILE__) . '/Resources/WebConfiguration.php';
     $loader = new ContainerPhpFileLoader(new ContainerArrayLoader());
     $builder->merge($loader->load($components));
     $builder->merge($loader->load($web));
 }
 protected function loadComponent(IContainerBuilder $builder, $name, array $component)
 {
     $definition = $builder->define($name);
     if (isset($component['class'])) {
         $definition->setClass($component['class']);
     }
     if (isset($component['constructor']) && $this->validateArguments($name, $component['constructor'])) {
         $definition->setArguments($component['constructor']);
     }
     if (isset($component['notes'])) {
         $definition->setNotes($component['notes']);
     }
     if (isset($component['methods']) && $this->validateMethods($name, $component['methods'])) {
         $definition->setMethods($component['methods']);
     }
     if (isset($component['scope'])) {
         $definition->setScope($component['scope']);
     }
 }
 /**
  * Merge settings with other container/builder, new settings will overwrite
  * old one.
  *
  * @param IContainerBuilder $container
  */
 public function merge($container)
 {
     $this->addConstants($container->getConstants());
     $this->definitions = array_merge($this->definitions, $container->getDefinitions());
 }
 /**
  * Register package wiring.
  *
  * Creates a new component declaration named "outlet_service",
  * user needs to define a pdo_service and classes + outlet.dialect constants
  *
  * @param IContainerBuilder $container
  */
 public function registerWiring(IContainerBuilder $container)
 {
     $container->define('outlet_service')->setClass('Outlet')->addArgument('array', array('connection' => array('array', array('pdo' => array('component', 'pdo_service'), 'dialect' => array('constant', 'outlet.dialect'))), 'classes' => array('constant', 'database.classes')))->addMethod('createProxies');
 }