build() public method

Build and return a container.
public build ( ) : Container
return Container
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;
 }
Example #2
0
 /**
  * Returns the dependency injection container
  *
  * @return \DI\Container
  */
 public function getDiContainer()
 {
     if (!$this->diContainer) {
         $builder = new ContainerBuilder();
         //			$builder->setDefinitionCache(new ArrayCache());
         $builder->setDefinitionCache(new FilesystemCache(ConfigurationManager::getSharedInstance()->getConfigurationForKeyPath('cachePath')));
         $this->diContainer = $builder->build();
         $builder->addDefinitions(__DIR__ . '/Configuration/dependencyInjectionConfiguration.php');
         $this->diContainer = $builder->build();
         //			$this->diContainer = ContainerBuilder::buildDevContainer();
     }
     return $this->diContainer;
 }
Example #3
0
 /**
  * Configure the DI container.
  */
 private function configureContainer()
 {
     // Build the DI container.
     $builder = new ContainerBuilder();
     $builder->addDefinitions(__DIR__ . '/config/di.php');
     $this->container = $builder->build();
 }
Example #4
0
 protected function createContainer()
 {
     $builder = new ContainerBuilder();
     $builder->setDefinitionCache(new \Doctrine\Common\Cache\ArrayCache());
     $builder->addDefinitions(dirname(__DIR__) . '/DI/config.php');
     $this->container = $builder->build();
 }
Example #5
0
 /**
  * @param $env
  * @return \DI\Container
  */
 public function getContainer($env)
 {
     $builder = new ContainerBuilder();
     foreach (glob(APP_HOME . '/conf/conf.d/*.conf.php') as $filename) {
         $builder->addDefinitions($filename);
     }
     $builder->addDefinitions(APP_HOME . '/conf/config.' . $env . '.php');
     switch ($env) {
         case EnvironmentEnum::DEV:
             $builder->setDefinitionCache(new ArrayCache());
             break;
         case EnvironmentEnum::PROD:
             $redis = new Redis();
             $redis->pconnect('localhost');
             $redis->setOption(Redis::OPT_PREFIX, 'homeservice:cache:di:');
             $cache = new RedisCache();
             $cache->setRedis($redis);
             $builder->setDefinitionCache($cache);
             $builder->writeProxiesToFile(true, APP_HOME . '/var/cache/proxies');
             break;
     }
     $builder->useAnnotations(true);
     $container = $builder->build();
     return $container;
 }
Example #6
0
 /**
  * Container compilation.
  *
  * @param mixed $config Configuration file/array.
  *
  * @link http://php-di.org/doc/php-definitions.html
  *
  * @return ContainerInterface
  */
 private function buildContainer($config)
 {
     $builder = new DI\ContainerBuilder();
     $builder->useAnnotations(true);
     $builder->addDefinitions($config);
     return $builder->build();
 }
Example #7
0
 public function __construct()
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions(__DIR__ . '/config.php');
     $container = $containerBuilder->build();
     parent::__construct($container);
 }
 private function createContainer(array $definitions = [])
 {
     $builder = new ContainerBuilder();
     $builder->addDefinitions(__DIR__ . '/../../res/config/config.php');
     $builder->addDefinitions([ContainerInterface::class => get(Container::class), Twig_LoaderInterface::class => object(Twig_Loader_Array::class)->constructor([]), ResourceRepository::class => object(NullRepository::class)]);
     $builder->addDefinitions($definitions);
     return $builder->build();
 }
 /**
  * @inheritDoc
  */
 protected function setUp()
 {
     parent::setUp();
     $builder = new ContainerBuilder();
     $builder->useAutowiring(true);
     $builder->useAnnotations(true);
     $this->container = $builder->build();
 }
Example #10
0
 private function createContainer($definitions = [])
 {
     $builder = new ContainerBuilder();
     $builder->addDefinitions(__DIR__ . '/../res/config/config.php');
     $builder->addDefinitions([ResourceRepository::class => new InMemoryRepository()]);
     $builder->addDefinitions($definitions);
     return $builder->build();
 }
 public function __invoke(AppBuilder $appBuilder)
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions($appBuilder->getConfigService()->get('php-di'));
     $containerBuilder->addDefinitions([BundleService::class => $appBuilder->getBundleService(), ConfigService::class => $appBuilder->getConfigService()]);
     $container = $containerBuilder->build();
     $container->set(Container::class, $container);
     $appBuilder->setContainer($container);
 }
Example #12
0
 /**
  * Настраиваем контейнер.
  */
 protected function setContainer()
 {
     $builder = new ContainerBuilder();
     $builder->useAnnotations(false);
     if ($this->options['dependencies']) {
         $builder->addDefinitions($this->options['dependencies']);
     }
     $builder->writeProxiesToFile((bool) $this->options['containerProxy'], is_string($this->options['containerProxy']) ? $this->options['containerProxy'] : sys_get_temp_dir());
     $this->container = $builder->build();
 }
 /**
  *
  */
 function __construct()
 {
     // Initialize dependency injection framework.
     $builder = new ContainerBuilder();
     $container = $builder->build();
     $nullOutput = new NullOutput();
     $output = new Output($nullOutput);
     $container->set('Box\\TestScribe\\Output', $output);
     $this->container = $container;
 }
Example #14
0
 /**
  * @param string $token
  * @param string $uri
  */
 public function __construct($token, $uri = 'http://www.ifsistem.com/api/v1')
 {
     $builder = new ContainerBuilder(Container::class);
     $builder->useAnnotations(true);
     $builder->addDefinitions(['sayfa' => \DI\get(SayfaService::class), 'menu' => \DI\get(MenuService::class), 'manset' => \DI\get(MansetService::class), 'haber' => \DI\get(HaberService::class), 'galeri' => \DI\get(GaleriService::class), 'iletisimMesaj' => \DI\get(IletisimMesajService::class), 'site' => \DI\get(SiteService::class), 'sehir' => \DI\get(SehirService::class), 'ilce' => \DI\get(IlceService::class), 'semt' => \DI\get(SemtService::class), 'emlak' => \DI\get(EmlakService::class), 'urun' => \DI\get(UrunService::class), 'kullanici' => \DI\get(KullaniciService::class), 'resim' => \DI\get(ResimService::class), 'reklam' => \DI\get(ReklamService::class), 'siparis' => \DI\get(SiparisService::class), 'sanat' => \DI\get(SanatService::class), 'grup' => \DI\get(GrupService::class), 'reference' => \DI\get(ReferenceService::class), 'api' => function () use($token, $uri) {
         return new ApiService($token, $uri);
     }, ApiService::class => \DI\get('api')]);
     // test
     $this->container = $builder->build();
 }
Example #15
0
 public function setUp()
 {
     $this->router = FastRoute\simpleDispatcher(function (FastRoute\RouteCollector $router) {
         $router->addRoute('GET', '/', ['TestApp\\Controller\\Index', 'diTest']);
     });
     $builder = new ContainerBuilder();
     $builder->useAnnotations(true);
     $dic = $builder->build();
     $this->container = $dic;
 }
 public function setUp($useReflection = true, $useAnnotations = true, Cache $cache = null)
 {
     parent::setUp();
     $builder = new ContainerBuilder();
     $builder->useReflection($useReflection)->useAnnotations($useAnnotations);
     if (!is_null($cache)) {
         $builder->setDefinitionCache($cache);
     }
     $this->DIContainer = $builder->build();
     $this->registerMocks();
 }
Example #17
0
 protected function setUp()
 {
     $config = ['app' => "this is my app", "test" => "prova", "version" => "0.0.1", 'routes' => [['name' => 'hello', 'route' => "--name=", 'short_description' => "Good morning!! This is a beautiful day", "handler" => ['App\\Command\\Hello', 'run']]], "service_manager" => ["invokables" => [], "factories" => []]];
     $builder = new ContainerBuilder();
     $builder->useAnnotations(true);
     $builder->addDefinitions($config);
     $container = $builder->build();
     $configServiceManager = new Config($config['service_manager']);
     $container->set("service_manager", new ServiceManager($configServiceManager));
     $this->application = new Application($config['app'], $config['version'], $config['routes'], Console::getInstance(), new Dispatcher($container));
 }
Example #18
0
 /**
  * @return Container
  */
 public function createContainer()
 {
     $builder = new ContainerBuilder();
     $builder->addDefinitions(__DIR__ . '/config.php');
     $moduleConfigs = new Finder();
     $moduleConfigs->files()->in(__DIR__ . '/../Module')->path('/.+/')->name('config.php');
     foreach ($moduleConfigs as $moduleConfig) {
         /** @var SplFileInfo $moduleConfig */
         $builder->addDefinitions($moduleConfig->getPathname());
     }
     return $builder->build();
 }
Example #19
0
 /**
  * Container compilation.
  *
  * @param mixed $config Configuration file/array.
  *
  * @link http://php-di.org/doc/php-definitions.html
  *
  * @return ContainerInterface
  */
 public static function buildContainer($config = [])
 {
     $builder = new DI\ContainerBuilder();
     $builder->useAnnotations(true);
     $builder->addDefinitions(['request' => \Zend\Diactoros\ServerRequestFactory::fromGlobals(), 'response' => DI\object('Zend\\Diactoros\\Response'), 'http_flow_event' => DI\object('Penny\\Event\\HttpFlowEvent')->constructor('bootstrap', DI\get('request'), DI\get('response')), 'event_manager' => DI\object('Zend\\EventManager\\EventManager'), 'dispatcher' => DI\factory(function ($container) {
         return new \Penny\Dispatcher($container->get('router'), $container);
     })]);
     $builder->addDefinitions($config);
     $container = $builder->build();
     $container->set('di', $container);
     return $container;
 }
Example #20
0
 public function testCorrectInjectionWithExternalContainer()
 {
     $builder = new ContainerBuilder();
     $builder->addDefinitions(Loader::load());
     $builder->useAnnotations(true);
     $app = new App($this->router, $builder->build());
     $request = (new Request())->withUri(new Uri('/load'))->withMethod('GET');
     $response = new Response();
     $response = $app->run($request, $response);
     $this->assertEquals(200, $response->getStatusCode());
     $this->assertEquals('eureka', $response->getBody()->__toString());
 }
Example #21
0
 /**
  * @throws \Exception
  */
 protected function __construct()
 {
     $builder = new ContainerBuilder();
     $builder->useAutowiring(false);
     $builder->useAnnotations(false);
     $configFile = sprintf(dirname(dirname(dirname(dirname(dirname(__DIR__))))) . '/config/' . self::CONFIG_FILE_PATTERN, self::$env);
     if (!file_exists($configFile)) {
         throw new \Exception(sprintf("The config file expected '%s' doesn't exist", $configFile));
     }
     $builder->addDefinitions($configFile);
     $container = $builder->build();
     self::$instance = $container;
 }
 public function setUp()
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions(__DIR__ . '/../../app/config.php');
     $container = $containerBuilder->build();
     $this->checkRepository = $container->get(CheckRepository::class);
     $this->check = new DatabaseCheck();
     $this->exercise = $this->createMock(DatabaseExerciseInterface::class);
     $this->exercise->expects($this->any())->method('getType')->willReturn(ExerciseType::CLI());
     $this->dbDir = sprintf('%s/PhpSchool_PhpWorkshop_Check_DatabaseCheck', str_replace('\\', '/', realpath(sys_get_temp_dir())));
     $this->assertEquals('Database Verification Check', $this->check->getName());
     $this->assertEquals(DatabaseExerciseCheck::class, $this->check->getExerciseInterface());
 }
Example #23
0
 /**
  * Returns the dependency injection container
  *
  * @return \DI\Container
  */
 public function getDiContainer()
 {
     if (!$this->diContainer) {
         $builder = new ContainerBuilder();
         //			$builder->setDefinitionCache(new \Doctrine\Common\Cache\ArrayCache());
         $builder->setDefinitionCache(new FilesystemCache(__DIR__ . '/../../var/Cache/'));
         $builder->addDefinitions(__DIR__ . '/../../Classes/Configuration/dependencyInjectionConfiguration.php');
         $this->diContainer = $builder->build();
         //			$this->diContainer = ContainerBuilder::buildDevContainer();
         $this->diContainer->get('Cundd\\PersistentObjectStore\\Event\\SharedEventEmitter');
     }
     return $this->diContainer;
 }
Example #24
0
 /**
  * @param ConfigRepository $config
  * @return \DI\Container
  */
 private function initContainer(ConfigRepository $config)
 {
     $builder = new ContainerBuilder();
     // Register ConfigRepository
     $builder->addDefinitions([ConfigRepository::class => $config]);
     // Register container definitions
     $definitions = $config->get('container')['definitions'];
     foreach ($definitions as $definition) {
         $builder->addDefinitions($definition);
     }
     $container = $builder->build();
     return $container;
 }
 /**
  * @test
  */
 public function shows_error_page_with_dev_environment()
 {
     $containerBuilder = new ContainerBuilder();
     $containerBuilder->addDefinitions(__DIR__ . '/../res/config/config.php');
     $containerBuilder->addDefinitions(__DIR__ . '/../res/config/env/dev.php');
     $container = $containerBuilder->build();
     /** @var ErrorHandlerMiddleware $middleware */
     $middleware = $container->get(ErrorHandlerMiddleware::class);
     $response = $middleware->__invoke(new ServerRequest(), function () {
         throw new \Exception('Hello world');
     });
     $this->assertContains('Error', (string) $response->getBody());
     $this->assertContains('Hello world', (string) $response->getBody());
 }
Example #26
0
 public function testDIMultiInstance()
 {
     $key1 = 'hello';
     $value1 = 'world';
     $key2 = 'Night';
     $value2 = 'all';
     //register key1 in first instance, key2 in second instance
     $this->phpDI->set($key1, $value1);
     $builder = new ContainerBuilder();
     $phpDi = $builder->build();
     $phpDi->set($key2, $value2);
     $adapter = new PHPDIAdapter($phpDi);
     $this->container->provider($adapter);
     $this->assertEquals($value1, $this->container->get($key1));
     $this->assertEquals($value2, $this->container->get($key2));
 }
 /**
  * Executes the current command.
  *
  * @param InputInterface  $input An InputInterface instance
  * @param OutputInterface $output An OutputInterface instance
  *
  * @return null|integer null or 0 if everything went fine, or an error code
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     // Initialize dependency injection framework.
     $builder = new ContainerBuilder();
     $container = $builder->build();
     $container->set('Symfony\\Component\\Console\\Output\\OutputInterface', $output);
     // Make sure App class is initialized before calling the bootstrap script.
     // The presence of this class sends a signal to the code executing later
     // that this execution is for generating tests.
     App::setOutput($output);
     /**
      * @var EngineStarter $engineStarter
      */
     $engineStarter = $container->get("Box\\TestScribe\\EngineStarter");
     $engineStarter->configAndStart($input, $output);
     return 0;
 }
Example #28
0
 public function setUp()
 {
     $loader = (include __DIR__ . '/../vendor/autoload.php');
     AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
     $container = new CompositeContainer();
     $builder = new ContainerBuilder();
     $builder->useAnnotations(true);
     $builder->wrapContainer($container);
     $diContainer = $builder->build();
     $container->addContainer($diContainer);
     $reader = new AnnotationReader();
     $routeLoader = new RouteAnnotationClassLoader($reader);
     $loader = new AnnotationDirectoryLoader(new FileLocator([__DIR__ . '/app']), $routeLoader);
     $routes = $loader->load(__DIR__ . '/app');
     $context = new RequestContext();
     $matcher = new UrlMatcher($routes, $context);
     $hookReader = new HookReader($reader);
     $executor = new AnnotExecutor($container, $hookReader);
     $this->app = new App($matcher, $executor);
 }
 /**
  * Boots the dependency injection container.
  *
  * @param \Domynation\Config\ConfigInterface $config
  * @param \Domynation\Session\SessionInterface $session
  *
  * @return \DI\Container
  */
 private function bootContainer(ConfigInterface $config, SessionInterface $session)
 {
     $builder = new ContainerBuilder();
     $builder->useAnnotations(false);
     // Cache the definitions in production
     if (IS_PRODUCTION) {
         $builder->setDefinitionCache(new ApcuCache());
     }
     // Load all global services
     $builder->addDefinitions(array_merge(require_once __DIR__ . '/Files/container.php', [ConfigInterface::class => $config, SessionInterface::class => $session]));
     // First pass: Instanciate each providers and load their container definitions
     $providers = array_reduce($config->get('providers'), function ($accumulator, $name) use($builder) {
         if (!class_exists($name)) {
             return $accumulator;
         }
         // Instanciate the provider
         $reflection = new \ReflectionClass($name);
         $provider = $reflection->newInstanceArgs();
         // Load the provider's container definitions
         $builder->addDefinitions($provider->registerContainerDefinitions());
         $accumulator[] = $provider;
         return $accumulator;
     });
     // Build the container
     $container = $builder->build();
     // Second pass: Boot each service
     foreach ($providers as $provider) {
         // Start the provider
         $provider->start($container->get(Router::class), $container->get(ViewFactoryInterface::class), $container->get(EventDispatcherInterface::class));
         // Use reflection to get a closure copy of the `boot` method
         $reflection = new \ReflectionClass(get_class($provider));
         $closure = $reflection->getMethod('boot')->getClosure($provider);
         // Let the container inject the dependency needed by the closure
         $container->call($closure);
     }
     return $container;
 }
 /**
  * {@inheritdoc}
  */
 public function init()
 {
     parent::init();
     $environment = Config::getSystemConfig()->get("general")->get("environment");
     // Set up dependency injection container
     $builder = new ContainerBuilder();
     $builder->useAnnotations(true);
     // Configure the container
     $builder->addDefinitions(PIMCORE_WEBSITE_PATH . "/config/container.php");
     if ($environment !== "local") {
         // Use whatever cache Pimcore has configured (if it has one configured) to cache object
         // definitions in the container
         $builder->setDefinitionCache(new PimcoreCache());
     } else {
         // For development, or debugging we don't want to cache the container
         $builder->setDefinitionCache(new ArrayCache());
     }
     $environmentConfigFile = DefinitionFileLocator::getPath($environment);
     $parametersFile = ParametersFileLocator::getPath();
     if (file_exists($environmentConfigFile)) {
         $builder->addDefinitions($environmentConfigFile);
     }
     if (file_exists($parametersFile)) {
         $builder->addDefinitions($parametersFile);
     }
     $container = $builder->build();
     /** @var \Zend_Controller_Dispatcher_Interface $currentDispatcher */
     $currentDispatcher = \Zend_Controller_Front::getInstance()->getDispatcher();
     $dispatcher = new Dispatcher();
     $dispatcher->setContainer($container);
     $dispatcher->setControllerDirectory($currentDispatcher->getControllerDirectory());
     $dispatcher->setDefaultModule($currentDispatcher->getDefaultModule());
     $dispatcher->setDefaultAction($currentDispatcher->getDefaultAction());
     $dispatcher->setDefaultControllerName($currentDispatcher->getDefaultControllerName());
     \Zend_Controller_Front::getInstance()->setDispatcher($dispatcher);
 }