public function modify(Container $di) { $adr = $di->get('radar/adr:adr'); /** * Middleware */ $adr->middle(new ResponseSender()); $adr->middle(new ExceptionHandler(new Response())); $adr->middle('Radar\\Adr\\Handler\\RoutingHandler'); $adr->middle('Radar\\Adr\\Handler\\ActionHandler'); /** * Setup */ $adr->input('Blog\\Delivery\\Input\\MergedArray'); $adr->responder('Blog\\Delivery\\Responder\\Html'); /** * Data */ $postGateway = $di->get('blog/domain:postGateway'); $postGateway->savePost(new PostEntity('Sample Post 1', 'This is the first sample post.', '', '1')); $postGateway->savePost(new PostEntity('Sample Post 2', 'This is the second sample post.', '', '2')); $postGateway->savePost(new PostEntity('Sample Post 3', 'This is the third sample post.', '', '3')); // $dbh = $di->get('dbh'); // $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); /** * Routing */ $adr->get('ListAllPosts', '/', 'Blog\\Domain\\Interactor\\ListAllPosts')->input('Blog\\Delivery\\Input\\NoneExpected')->defaults(['_view' => 'listposts.html.php']); $adr->get('DisplaySinglePost', '/{id}/', 'Blog\\Domain\\Interactor\\DisplaySinglePost')->input('Blog\\Delivery\\Input\\IdOnly')->defaults(['_view' => 'singlepost.html.php']); $adr->post('CreateNewPost', '/', 'Blog\\Domain\\Interactor\\CreateNewPost')->input('Blog\\Delivery\\Input\\CreateNewPost')->responder('Blog\\Delivery\\Responder\\Redirect'); }
private function _getInstance() { if ($this->_instance === null) { $this->_instance = $this->_diContainer->get($this->_instanceName); } return $this->_instance; }
public function modifyWebDispatcher(Container $di) { /** @var \Aura\View\View $view */ $view = $di->get('view'); /** @var \Aura\Dispatcher\Dispatcher $dispatcher */ $dispatcher = $di->get('aura/web-kernel:dispatcher'); /** @var \Aura\Web\Response $response */ $response = $di->get('aura/web-kernel:response'); /** @var \Aura\Web\Request $request */ $request = $di->get('aura/web-kernel:request'); $dispatcher->setObject('hello', function () use($view, $response, $request) { $view->setView('api_response'); $view->setLayout('index'); $response->content->set($view->__invoke()); }); $dispatcher->setObject('system', function () use($view, $response, $request) { $view->setView('api_response'); $view->setLayout('index'); new \System\setData($request, $response, $view); }); $dispatcher->setObject('alert', function () use($view, $response, $request) { $view->setView('api_response'); $view->setLayout('index'); new \Alert\Uploader($request, $response, $view); }); }
protected function get($service) { $services = $this->serviceContainer->getServices(); if (array_search($service, $services) === false) { return false; } return $this->serviceContainer->get($service); }
public function modify(Container $di) { $dispatcher = $di->get('aura/cli-kernel:dispatcher'); $dispatcher->setObject('logger', $di->newInstance('Mbrevda\\MonologServer\\ServerRunner')); $help_service = $di->get('aura/cli-kernel:help_service'); $help = $di->newInstance('Aura\\Cli\\Help'); $help_service->set('logger', function () use($help) { $help->setSummary('Runs the Streaming Logger Server'); $help->setOptions(['addr:' => 'The address that the server will listen on']); return $help; }); }
public function modify(Container $di) { $router = $di->get("router"); $router->get(['/', 'index'], ['Puzzle\\Controllers\\PagesController', 'index']); $router->get(['/404.html', '404'], ['Puzzle\\Controllers\\PagesController', 'send404']); $router->get(['/{slug}.html', 'getPage'], ['Puzzle\\Controllers\\PagesController', 'getPage']); }
/** * Defines configuration for the dependency injection container * * @param Container $di Aura dependency injection container */ public function define(Container $di) { $di->set('Aura\\Cli\\Context', $di->lazyNew('Aura\\Cli\\Context')); $di->set('Aura\\Cli\\Help', $di->lazyNew('Aura\\Cli\\Help')); // Typehinted dependency resolution for command classes $di->params['ShootProof\\Cli\\Command\\BaseCommand']['stdio'] = $di->lazyNew('Aura\\Cli\\Stdio'); $di->params['ShootProof\\Cli\\Command\\BaseCommand']['api'] = $di->get('ShootProofApi'); $di->params['ShootProof\\Cli\\Command\\BaseCommand']['logger'] = $di->get('Logger'); $di->types['Help'] = $di->lazyGet('Help'); // Map CLI keywords to command classes $di->set('push', $di->lazyNew('ShootProof\\Cli\\Command\\PushCommand')); $di->set('pull', $di->lazyNew('ShootProof\\Cli\\Command\\PullCommand')); $di->set('accesslevel', $di->lazyNew('ShootProof\\Cli\\Command\\AccesslevelCommand')); $di->set('brands', $di->lazyNew('ShootProof\\Cli\\Command\\BrandsCommand')); $di->set('help', $di->lazyNew('ShootProof\\Cli\\Command\\HelpCommand')); }
protected function modifyCliDispatcherAndHelp(Container $di) { // $context = $di->get('aura/cli-kernel:context'); // $stdio = $di->get('aura/cli-kernel:stdio'); // $logger = $di->get('aura/project-kernel:logger'); $dispatcher = $di->get('aura/cli-kernel:dispatcher'); $help_service = $di->get('aura/cli-kernel:help_service'); // register built-in commands foreach ($this->commands as $command) { $class = 'CLI\\Command\\' . $command; $command_name = strtolower($command); $dispatcher->setObject($command_name, $di->lazyNew($class)); $help_class = 'CLI\\Command\\' . $command . 'Help'; $help_service->set($command_name, $di->lazyNew($help_class)); } // register user commands UserConfig::registerCommands($di, $dispatcher, $help_service, $this->user_command_paths); }
public function modifyWebRouter(Container $di) { $router = $di->get('aura/web-kernel:router'); $router->add('hello', '/')->setValues(array('action' => 'hello')); // Add an about page $router->add('about', '/about')->setValues(array('action' => 'about')); // Add a sales data display page $router->add('data-view-sales', '/data/view/sales')->setValues(array('action' => 'data-view-sales')); }
/** * * Modifies constructed container objects. * * @param Container $di The DI container. * */ public function modify(Container $di) { $adr = $di->get('radar/adr:adr'); /** * Middleware */ $adr->middle(new ResponseSender()); $adr->middle(new ExceptionHandler(new Response())); $adr->middle('Radar\\Adr\\Handler\\RoutingHandler'); $adr->middle('Radar\\Adr\\Handler\\ActionHandler'); //$container->register(new \WhoopsPimple\WhoopsServiceProvider); /** * Input */ // $adr->input('Application\Input\MergedArray'); // $adr->input('Application\Input\NoneExpected'); /** * Responder */ // $adr->responder('Application\Responder\AuraViewResponder'); /** * Routes */ /** * * Index page route * */ $adr->get('index.page', '/', \Application\Domain\HelloPayload::class)->responder('Application\\Responder\\AuraViewStaticPage')->defaults(['page' => 'index']); // aura view including static partials $adr->get('aura.staticpage', '/aura/{page}?', \Application\Domain\Aura::class)->responder('Application\\Responder\\AuraViewStaticPage')->defaults(['page' => 'index'])->tokens(['page' => '|index|mikka|mikka2|mikka3']); // database stuff $adr->get('aura.page', '/aura/{page}?', \Application\Domain\Aura::class)->responder('Application\\Responder\\AuraViewStaticPage')->defaults(['page' => 'content'])->tokens(['page' => 'content']); // page from DB $adr->get('db.page', '/dbpage{/page}?', \Application\Domain\Page::class)->input('Application\\Input\\Page')->responder('Application\\Responder\\AuraViewStaticPage')->defaults(['page' => 'index'])->tokens(['page' => '|index|mikka|mikka2|mikka3']); /** * * Static page views route * * @param input: * @param responder: * @param defaults: the default view to view when not defined * @return tokens: the allowed values * */ // $adr->get('static.page', '/page{/page}?', \Application\Domain\HelloPayload::class) // ->input('Application\Input\MergedArray') // ->responder('Application\Responder\AuraViewStaticPage') // ->defaults([ // 'page' => 'index' // ]) // ->tokens([ // 'page' => '|index|mikka|mikka2|mikka3' // ]); }
/** * @param string $file * @return string classname, if not found returns '' */ protected static function findClass(Container $di, $file) { require_once $file; $classname = basename($file, '.php'); if (!class_exists($classname)) { $stdio = $di->get('aura/cli-kernel:stdio'); $stdio->errln('<<red>>No such class: ' . $classname . ' in ' . $file . '<<reset>>'); return ''; } return $classname; }
public function modify(Container $di) { /** * Setup HTTP middlewares */ $di->get('http_middlewares')->addMany([[$di->newInstance('asylgrp\\workbench\\Http\\Middleware\\ExceptionHandler'), 1], [$di->newInstance('asylgrp\\workbench\\Http\\Middleware\\HttpsEnforcer'), 2], [$di->newInstance('asylgrp\\workbench\\Http\\Middleware\\HttpRefererChecker'), 3], [$di->newInstance('asylgrp\\workbench\\Http\\Middleware\\HttpCacheDisabler'), 4], [$di->newInstance('asylgrp\\workbench\\Http\\Middleware\\Router'), 999]]); /** * Setup the event dispatcher */ $subscribers = ['asylgrp\\workbench\\Storage\\ContactStorageSubscriber', 'asylgrp\\workbench\\Storage\\ClaimStorageSubscriber']; foreach ($subscribers as $subscriberClass) { $di->get('event_dispatcher')->addSubscriber($di->newInstance($subscriberClass)); } // Create manifest $di->get('router_map')->get('manifest', '', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\RespondingAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\ManifestResponder')])); /** * Setup routes for the CONTACTS namespace */ $di->get('router_map')->attach('contacts.', '/contacts', function ($map) use($di) { $map->get('coll.read', '', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\RespondingAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\ContactCollectionResponder')])); $map->get('item.read', '/{id}', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\ReadIdAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\ContactItemResponder')])); $map->get('item.claims', '/{id}/claims', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\ReadIdAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\ClaimCollectionResponder')])); $map->delete('item.delete', '/{id}', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\DeleteContactAction')); // TODO ... $map->post('item.create', '', $di->lazyNew('TODO asylgrp\\workbench\\Http\\Action\\CreateContact')); $map->put('item.update', '/{id}', $di->lazyNew('TODO asylgrp\\workbench\\Http\\Action\\UpdateContact')); }); /** * Setup routes for the CLAIMS namespace */ $di->get('router_map')->attach('claims.', '/claims', function ($map) use($di) { $map->get('coll.read', '', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\RespondingAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\GroupedClaimCollectionResponder')])); $map->get('item.read', '/{id}', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\ReadIdAction', ['responder' => $di->lazyNew('asylgrp\\workbench\\Http\\Responder\\ClaimItemResponder')])); $map->delete('coll.truncate', '', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\TruncateClaimsAction')); $map->delete('item.delete', '/{id}', $di->lazyNew('asylgrp\\workbench\\Http\\Action\\DeleteClaimAction')); // TODO ... $map->post('item.create', '', $di->lazyNew('TODO asylgrp\\workbench\\Http\\Action\\CreateClaim')); $map->put('item.update', '/{id}', $di->lazyNew('TODO asylgrp\\workbench\\Http\\Action\\UpdateClaim')); }); }
/** * Modify * * @param Container $di DESCRIPTION * * @return mixed * @throws exceptionclass [description] * * @access public * * @SuppressWarnings(PHPMD.ShortVariable) */ public function modify(Container $di) { $di->get('aura/view:view')->addData(['auth' => $di->get('aura/auth:auth'), 'csrf' => $di->get('aura/session:csrf')->getValue()]); }
protected function createElasticsearchIndex() { $params = ['index' => 'tests', 'body' => ['mappings' => ['custom' => ['enabled' => true, 'properties' => ['firstname' => ['type' => 'string', 'index' => 'not_analyzed'], 'lastname' => ['type' => 'string', 'index' => 'not_analyzed']]]]]]; $response = $this->di->get('tests/elasticsearch:client')->indices()->create($params); $this->assertTrue($response['acknowledged']); }
public function modify(Container $di) { Escaper::setStatic($di->get('aura/html:escaper')); }
<?php use Aura\Di\Container; use Aura\Di\Factory; $di = new Container(new Factory()); $di->set('A', $di->lazyNew('A')); //Trigger the autoloader $a = $di->get('A'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $j = $di->get('A'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);
protected function registerCommandHandlers(Container $di) { $map = $this->getCommandHandlerRepositoryServiceMap(); $bus = $di->get('pollo/command-bus'); foreach ($map as $handlerClass => $repositoryService) { $repository = $di->get($repositoryService); $handler = new $handlerClass($repository); $bus->subscribe($handler); } }
<?php use Aura\Di\Container; use Aura\Di\Factory; $di = new Container(new Factory()); $di->set('A', $di->lazyNew('A')); $di->set('B', $di->lazyNew('B')); $di->params['B'] = ['a' => $di->get('A')]; //Trigger the autoloader before measuring execution time $a = $di->newinstance('B'); unset($a); $t1 = microtime(true); for ($i = 0; $i < 10000; $i++) { $b = $di->newinstance('B'); } $t2 = microtime(true); $results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024]; echo json_encode($results);
public function modifyWebRouter(Container $di) { $router = $di->get('aura/web-kernel:router'); $router->add('hello', '/')->setValues(array('action' => 'hello')); }
public function modify(Container $di) { $twig = $di->get('twig'); $twig->addExtension($di->newInstance('Twig_Extension_Debug')); }