DI\ContainerBuilder::addDefinitions PHP 메소드

addDefinitions() 공개 메소드

Add definitions to the container.
public addDefinitions ( string | array | DI\Definition\Source\DefinitionSource $definitions )
$definitions string | array | DI\Definition\Source\DefinitionSource Can be an array of definitions, the name of a file containing definitions or a DefinitionSource object.
    public function addDefinitions($definitions)
    {
        $this->ensureNotLocked();
        if (is_string($definitions)) {
            // File
            $definitions = new DefinitionFile($definitions);
        } elseif (is_array($definitions)) {
            $definitions = new DefinitionArray($definitions);
        } elseif (!$definitions instanceof DefinitionSource) {
            throw new InvalidArgumentException(sprintf('%s parameter must be a string, an array or a DefinitionSource object, %s given', 'ContainerBuilder::addDefinitions()', is_object($definitions) ? get_class($definitions) : gettype($definitions)));
        }
        $this->definitionSources[] = $definitions;
        return $this;
    }

Usage Example

예제 #1
1
 /**
  * @param $env
  * @return Container
  */
 public function getContainer($env)
 {
     $container = null;
     $builder = new ContainerBuilder(Container::class);
     //        $builder = new ContainerBuilder();
     foreach (glob(APP_HOME . '/conf/conf.d/*.conf.php') as $filename) {
         $builder->addDefinitions($filename);
     }
     $definitionsEnumFile = APP_HOME . '/conf/config.' . $env . '.php';
     if (file_exists($definitionsEnumFile)) {
         $builder->addDefinitions($definitionsEnumFile);
     }
     $builder->useAnnotations(false);
     $builder->useAutowiring(true);
     switch ($env) {
         case EnvironmentEnum::DEV:
             $builder->setDefinitionCache(new ArrayCache());
             break;
         case EnvironmentEnum::PROD:
         default:
             $cache = $this->getCache();
             $builder->setDefinitionCache($cache);
             $builder->writeProxiesToFile(true, APP_HOME . '/var/cache/proxies');
             break;
     }
     $container = $builder->build();
     return $container;
 }
All Usage Examples Of DI\ContainerBuilder::addDefinitions