public function setUp() { $cacheFactory = function () { $cacheDriver = new \Stash\Driver\FileSystem(); return new \Stash\Pool($cacheDriver); }; $injector = new Auryn\Injector(); $injector->delegate('Pool', $cacheFactory); $injector->define('APG\\Fleet\\Fleet', [':airline' => 'AFA', ':path' => 'tests/test_files']); $this->fleet = $injector->make('APG\\Fleet\\Fleet'); $this->aircraftCollection = new \APG\Fleet\Collections\AircraftCollection(); }
<?php // https://github.com/PatrickLouys/no-framework-tutorial $injector = new \Auryn\Injector(); $injector->alias('Http\\Response', 'Http\\HttpResponse'); $injector->share('Http\\HttpRequest'); $injector->define('Http\\HttpRequest', [':get' => $_GET, ':post' => $_POST, ':cookies' => $_COOKIE, ':files' => $_FILES, ':server' => $_SERVER]); $injector->alias('Http\\Request', 'Http\\HttpRequest'); $injector->share('Http\\HttpResponse'); $injector->delegate('Twig_Environment', function () use($injector) { $loader = new Twig_Loader_Filesystem(dirname(__DIR__) . '/templates'); $twig = new Twig_Environment($loader, ['debug' => true]); $twig->addExtension(new Twig_Extension_Debug()); return $twig; }); $injector->alias('Fotheby\\Template\\View', 'Fotheby\\Template\\TwigRenderer'); return $injector; // https://github.com/PatrickLouys/no-framework-tutorial
<?php $injector = new \Auryn\Injector(); //注入http处理类 $injector->alias('Http\\Request', 'Http\\HttpRequest'); $injector->share('Http\\HttpRequest'); $injector->define('Http\\HttpRequest', [':get' => $_GET, ':post' => $_POST, ':cookies' => $_COOKIE, ':files' => $_FILES, ':server' => $_SERVER]); $injector->alias('Http\\Response', 'Http\\HttpResponse'); $injector->share('Http\\HttpResponse'); //注入模板引擎类(MustacheRenderer) $injector->alias('My\\Template\\Renderer', 'My\\Template\\MustacheRenderer'); $injector->define('Mustache_Engine', [':options' => ['loader' => new Mustache_Loader_FilesystemLoader(dirname(__DIR__) . '/templates', ['extension' => '.html'])]]); //注入filepagereader类 $injector->define('My\\Page\\FilePageReader', [':pageFolder' => __DIR__ . '/../pages']); $injector->alias('My\\Page\\PageReader', 'My\\Page\\FilePageReader'); $injector->share('My\\Page\\FilePageReader'); //注入模板引擎类(Twig) $injector->alias('My\\Template\\Renderer', 'My\\Template\\TwigRenderer'); $injector->delegate('Twig_Environment', function () use($injector) { $loader = new Twig_Loader_Filesystem(dirname(__DIR__) . '/templates'); $twig = new Twig_Environment($loader); return $twig; }); //依赖于renderer $injector->alias('My\\Template\\FrontendRenderer', 'My\\Template\\FrontendTwigRenderer'); //menu interface $injector->alias('My\\Menu\\MenuReader', 'My\\Menu\\ArrayMenuReader'); $injector->share('My\\Menu\\ArrayMenuReader'); $injector->alias('My\\User\\user', 'My\\User\\adminUser'); $injector->share('My\\User\\adminUser'); return $injector;
// global parameter $injector->defineParam('config', $config); // route dispatcher $injector->prepare('Dispatcher', function ($obj, $injector) { $obj->injector = $injector; }); // request $request = Request::createFromGlobals(); $injector->share($request); // router $injector->define('AltoRouter', [':routes' => $route, ':basePath' => rtrim($baseDir, '/')]); // template engine $injector->alias('Template\\Renderer', 'Template\\PlatesRenderer'); $injector->define('League\\Plates\\Engine', [':directory' => __DIR__ . '/views/' . $config['theme']]); $injector->alias('League\\Plates\\Extension\\ExtensionInterface', 'Template\\MyPlatesExtension'); $injector->define('Template\\MyPlatesExtension', [':baseDir' => $baseDir]); // session and flash $sessionFactory = function () { $session = new Session(null, null, new Lib\MyFlash()); $session->setName('RakitanFramework'); $session->start(); return $session; }; $injector->delegate('Symfony\\Component\\HttpFoundation\\Session\\Session', $sessionFactory); $injector->share('Symfony\\Component\\HttpFoundation\\Session\\Session'); // authentication class //$injector->share('Lib\MyAuth'); // middleware $injector->alias('Debugbar\\DebugBar', 'DebugBar\\StandardDebugBar'); $injector->define('DebugBar\\JavascriptRenderer', [':baseUrl' => $baseDir . 'debugbar']); return $injector;
<?php require_once __DIR__ . '/../vendor/autoload.php'; $injector = new Auryn\Injector(); $injector->share('AMQPConnection'); $injector->delegate('AMQPConnection', function () { $connection = new AMQPConnection(['host' => 'localhost', 'port' => 5672, 'login' => 'guest', 'password' => 'guest']); if (!$connection->isConnected()) { $connection->connect(); } return $connection; });
<?php require_once "vendor/autoload.php"; $cacheFactory = function () { $cacheDriver = new \Stash\Driver\FileSystem(); return new \Stash\Pool($cacheDriver); }; $injector = new Auryn\Injector(); $injector->delegate('Pool', $cacheFactory); $injector->define('APG\\Fleet\\Fleet', [':airline' => 'AFA', ':path' => 'downloads/fleet/standard/']); $fleet = $injector->make('APG\\Fleet\\Fleet');
<?php $injector = new \Auryn\Injector(); $injector->alias('Http\\Request', 'Http\\HttpRequest'); $injector->share('Http\\HttpRequest'); $injector->define('Http\\HttpRequest', [':get' => $_GET, ':post' => $_POST, ':cookies' => $_COOKIE, ':files' => $_FILES, ':server' => $_SERVER]); $injector->alias('Http\\Response', 'Http\\HttpResponse'); $injector->share('Http\\HttpResponse'); $injector->define('Mustache_Engine', [':options' => ['loader' => new Mustache_Loader_FilesystemLoader(__DIR__ . '/views', ['extension' => '.html'])]]); $injector->delegate('Twig_Environment', function () use($injector) { $loader = new Twig_Loader_Filesystem(__DIR__ . '/views'); $twig = new Twig_Environment($loader); return $twig; }); $injector->alias('Aframe\\Template\\Renderer', 'Aframe\\Template\\TwigRenderer'); $injector->alias('Aframe\\Template\\FrontendRenderer', 'Aframe\\Template\\FrontendTwigRenderer'); $injector->define('Aframe\\Page\\FilePageReader', [':pageFolder' => __DIR__ . '/views']); $injector->alias('Aframe\\Page\\PageReader', 'Aframe\\Page\\FilePageReader'); $injector->share('Aframe\\Page\\FilePageReader'); $injector->alias('Aframe\\Menu\\MenuReader', 'Aframe\\Menu\\ArrayMenuReader'); $injector->share('Aframe\\Menu\\FileMenuReader'); return $injector;