public function setUp() { $this->di = new Container(new Factory()); $this->di->set('tests/elasticsearch:client', $this->di->lazy(function () { return ClientBuilder::create()->build(); })); $this->di->setter['Mosiyash\\Elasticsearch\\DocumentAbstract']['setDi'] = $this->di; $this->di->setter['Mosiyash\\Elasticsearch\\DocumentRepositoryAbstract']['setDi'] = $this->di; $this->di->set('tests/documents:custom', $this->di->newFactory('Mosiyash\\Elasticsearch\\Tests\\CustomDocument')); $this->di->set('tests/documents:custom_repository', $this->di->lazyNew('Mosiyash\\Elasticsearch\\Tests\\CustomDocumentRepository')); $this->checkElasticsearchIsRunned(); $this->deleteElasticsearchIndex(); $this->createElasticsearchIndex(); }
public function define(Container $di) { $di->set('event_dispatcher', $di->lazyNew(EventDispatcher::class)); $di->params[Application::class]['eventDispatcher'] = $di->lazyGet('event_dispatcher'); $di->params[Application::class]['contextFactory'] = $di->lazyNew(ContextFactory::class); $di->params[Application::class]['plugins'] = $di->lazy(function () { $plugins = []; $plugins[] = new ContextualHelpPlugin(); $plugins[] = new VersionInfoPlugin(); return $plugins; }); $di->params[ContextFactory::class]['eventDispatcher'] = $di->lazyGet('event_dispatcher'); $di->params[ContextFactory::class]['optionDefinitionParser'] = $di->lazyNew(OptionDefinitionParser::class); $di->params[ContextFactory::class]['usageParserBuilder'] = $di->lazyNew(UsageParserBuilder::class); }
public function define(Container $di) { $di->set('http_middlewares', $di->lazyNew('asylgrp\\workbench\\Http\\Middleware\\MiddlewareQueue')); $di->set('http_emitter', $di->lazyNew('Zend\\Diactoros\\Response\\SapiEmitter')); $di->set('http_runner', $di->lazyNew('Relay\\Runner', ['queue' => $di->lazyGetCall('http_middlewares', 'asArray')])); $di->set('http_request', $di->lazy(['Zend\\Diactoros\\ServerRequestFactory', 'fromGlobals'])); $di->set('http_response', $di->lazyNew('Zend\\Diactoros\\Response')); $di->set('event_dispatcher', $di->lazyNew('Symfony\\Component\\EventDispatcher\\EventDispatcher')); $di->types['Symfony\\Component\\EventDispatcher\\EventDispatcherInterface'] = $di->lazyGet('event_dispatcher'); $di->set('contact_storage', $di->lazy(function () use($di) { return new \asylgrp\workbench\Storage\ContactStorage(new \asylgrp\workbench\Storage\Mapper(new \asylgrp\workbench\Storage\JsonFileHandle($di->get('settings')->read('db.contacts')), $di->newInstance('asylgrp\\workbench\\Storage\\Arrayizer\\ContactArrayizer'))); })); $di->types['asylgrp\\workbench\\Storage\\ContactStorage'] = $di->lazyGet('contact_storage'); $di->params['asylgrp\\workbench\\Storage\\ClaimStorage']['file'] = $di->lazyNew('asylgrp\\workbench\\Storage\\JsonFileHandle', [$di->lazyGetCall('settings', 'read', 'db.claims')]); $di->set('claim_storage', $di->lazyNew('asylgrp\\workbench\\Storage\\ClaimStorage')); $di->types['asylgrp\\workbench\\Storage\\ClaimStorage'] = $di->lazyGet('claim_storage'); $di->params['Aura\\Router\\RouterContainer']['basepath'] = $di->lazyGetCall('settings', 'read', 'api.base_path'); $di->set('router_container', $di->lazyNew('Aura\\Router\\RouterContainer')); $di->set('router_map', $di->lazyGetCall('router_container', 'getMap')); $di->set('router_matcher', $di->lazyGetCall('router_container', 'getMatcher')); $di->types['Aura\\Router\\Matcher'] = $di->lazyGet('router_matcher'); $di->set('router_generator', $di->lazyGetCall('router_container', 'getGenerator')); $di->types['Aura\\Router\\Generator'] = $di->lazyGet('router_generator'); }
<?php use Aura\Di\Container; use Aura\Di\Injection\InjectionFactory; use Aura\Di\Resolver\Reflector; use Aura\Di\Resolver\Resolver; $container = new Container(new InjectionFactory(new Resolver(new Reflector()))); // Standard config keys $container->set('doctrine.entity_manager.orm_default', $container->lazy(new \ContainerInteropDoctrine\EntityManagerFactory(), $container)); // Custom config keys $container->set('doctrine.entity_manager.orm_other', $container->lazy(new \ContainerInteropDoctrine\EntityManagerFactory('orm_other'), $container));