Ejemplo n.º 1
0
 /**
  * Loads a specific configuration.
  *
  * @param array            $config    An array of configuration values
  * @param ContainerBuilder $container A ContainerBuilder instance
  *
  * @throws \InvalidArgumentException When provided tag is not defined in this extension
  *
  * @api
  */
 public function load(array $config, ContainerBuilder $container)
 {
     if (isset($config[0])) {
         foreach ($config[0] as $configFile) {
             $this->applicationContainer->import($configFile);
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * @param array $loadedApplications
  *
  * @return ApplicationContainerBuilder
  */
 public function getApplicationContainer(&$loadedApplications = array())
 {
     if (!$this->containerBuilderCompiled) {
         if (count($loadedApplications) == 0) {
             $parent = true;
         } else {
             $parent = false;
         }
         foreach ($this->parentApplications as $app) {
             if (in_array(get_class($app), $loadedApplications)) {
                 continue;
             }
             $loadedApplications[] = get_class($app);
             $this->containerBuilder->merge($app->getApplicationContainer($loadedApplications));
         }
         $this->configure($this->containerBuilder);
         foreach ($this->getConfigurationFiles() as $file) {
             $this->containerBuilder->import($file);
         }
         if ($parent) {
             //setting syntetic services
             $definition = new Definition();
             $definition->setSynthetic(true);
             //inserting container as service
             $this->containerBuilder->setDefinition('container', $definition);
             $this->containerBuilder->set('container', $this->containerBuilder);
             //inserting application as service
             $this->containerBuilder->setDefinition('application', clone $definition);
             $this->containerBuilder->set('application', $this);
             $this->containerBuilder->compile();
         }
     }
     return $this->containerBuilder;
 }