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;
示例#4
0
// 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;
示例#5
0
<?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;
});
示例#6
0
<?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');
示例#7
0
<?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;