<?php

$injector = new \Auryn\Injector();
$injector->alias('Http\\Response', 'Http\\HttpResponse');
$injector->share('Http\\HttpResponse');
$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('TechTest\\People\\People', 'TechTest\\People\\JsonPeople');
$injector->share('TechTest\\People\\JsonPeople');
$injector->alias('TechTest\\Csrf\\Csrf', 'TechTest\\Csrf\\SessionCsrf');
$injector->share('TechTest\\Csrf\\SessionCsrf');
$injector->alias('TechTest\\Template\\Renderer', 'TechTest\\Template\\PhpRenderer');
return $injector;
示例#2
0
 /**
  * @return \Jig\JigDispatcher
  */
 private function getJigDispatcher()
 {
     $jigConfig = $this->getJigConfig();
     $injector = new \Auryn\Injector();
     $injector->share($jigConfig);
     $injector->share($injector);
     $jig = $injector->make('Jig\\JigDispatcher');
     return $jig;
 }
 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();
 }
示例#4
0
文件: BugTest.php 项目: PeeHaa/Jig
 /**
  *
  */
 public function setUp()
 {
     parent::setUp();
     $templateDirectory = dirname(__DIR__) . "/./templates/";
     $compileDirectory = dirname(__DIR__) . "/./../tmp/generatedTemplates/";
     $jigConfig = new JigConfig($templateDirectory, $compileDirectory, Jig::COMPILE_ALWAYS, "php.tpl");
     $provider = new \Auryn\Injector();
     $provider->share($jigConfig);
     $provider->share($provider);
     $jigConverter = new JigConverter($jigConfig);
     //$this->jigRender = new JigRender($jigConfig, $jigConverter);
     $this->jig = new \Jig\JigDispatcher($jigConfig, $provider, $jigConverter);
 }
<?php

// di
$injector = new \Auryn\Injector();
// request and response
$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');
// session
$injector->alias('App\\Session\\Session', 'App\\Session\\NativeSession');
$injector->share('App\\Session\\Session');
// blade
//$injector->alias('duncan3dc\Laravel\BladeInstance', 'duncan3dc\Laravel\BladeInstance');
//$injector->share('duncan3dc\Laravel\BladeInstance');
//$injector->define('duncan3dc\Laravel\BladeInstance', [
//    ':path'     => getenv('VIEWS_DIRECTORY'),
//    ':cache'    => getenv('CACHE_DIRECTORY')
//]);
// our renderer
$injector->alias('App\\Renderers\\BladeRenderer', 'App\\Renderers\\BladeRenderer');
$injector->share('App\\Renderers\\BladeRenderer');
$injector->define('App\\Renderers\\BladeRenderer', [':path' => getenv('VIEWS_DIRECTORY'), ':cache' => getenv('CACHE_DIRECTORY')]);
// monolog
$injector->define('Monolog\\Logger', [':name' => 'applogger']);
return $injector;
<?php

$injector = new Auryn\Injector();
$injector->share('A');
//Trigger all autoloaders
$a = $injector->make('A');
unset($a);
$t1 = microtime(true);
for ($i = 0; $i < 10000; $i++) {
    $a = $injector->make('A');
}
$t2 = microtime(true);
$results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024];
echo json_encode($results);
<?php

$injector = new Auryn\Injector();
//Trigger all autoloaders
$a = $injector->make('J');
unset($a);
$t1 = microtime(true);
for ($i = 0; $i < 10000; $i++) {
    $a = $injector->make('J');
}
$t2 = microtime(true);
$results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024];
echo json_encode($results);
示例#8
0
$request = function () {
    return \Sabre\HTTP\Sapi::getRequest();
};
$response = function () {
    return new \Sabre\HTTP\Response();
};
/**
 * Start url parser
 */
$url = \Purl\Url::fromCurrent();
// determine if we are on https or not
$ssl = $url['port'] == '443' ? true : false;
/**
 * Start dic container
 */
$dic = new \Auryn\Injector();
// Share object instances
$services = [$config, $db, $mail(), $request(), $response(), $time(), $url];
foreach ($services as $service) {
    $dic->share($service);
}
//check if user is a robot
$robots = (require_once __DIR__ . '/Config/' . ENVIRONMENT . '/Robots.php');
/**
 * Start user object
 */
$user = $dic->make('\\Vela\\Core\\User');
$userAgent = $user->getUserAgent();
$userIp = $user->getUserIp();
if (!$user->isRobot($userAgent, $robots)) {
    /**
示例#9
0
文件: injector.php 项目: Zvax/pool
<?php

$injector = new \Auryn\Injector();
$injector->alias("Http\\Request", "Http\\HttpRequest");
$injector->alias("Http\\Response", "Http\\HttpResponse");
$injector->share("Http\\Request");
$injector->share("Http\\Response");
$injector->share("Pool\\Model\\Params");
$injector->share("View\\Site");
$injector->define("PDO", [":dsn" => "sqlite:" . __DIR__ . "/../data/pooldb.db", ":options" => [PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]]);
$injector->define("Http\\Request", [":get" => $_GET, ":post" => $_POST, ":files" => $_FILES, ":cookies" => $_COOKIE, ":server" => $_SERVER]);
$injector->alias("Templating\\Renderer", "Templating\\PhpTemplatesRenderer");
$injector->share("Templating\\Renderer");
$injector->define("Storage\\FileLoader", [":root" => __DIR__ . "/../templates", ":extension" => "php"]);
$injector->define("BasicWebsite\\Pages\\FilePageReader", [":pageFolder" => __DIR__ . "/../pages"]);
$injector->alias("BasicWebsite\\Pages\\PageReader", "BasicWebsite\\Pages\\FilePageReader");
$injector->share("BasicWebsite\\Pages\\PageReader");
$injector->alias("BasicWebsite\\Menu\\MenuReader", "BasicWebsite\\Menu\\ArrayMenuReader");
$injector->share("BasicWebsite\\Menu\\MenuReader");
return $injector;
示例#10
0
文件: index.php 项目: etu/0bRSS
<?php

define('PROJECT_ROOT', realpath(__DIR__ . '/..'));
require PROJECT_ROOT . '/vendor/autoload.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
/**
 * Prepare dependency injector
 */
$injector = new \Auryn\Injector();
$injector->share($injector);
/**
 * Prepare Slim
 */
$slim = new \Slim\Slim(['view' => new \Slim\Views\Twig(), 'templates.path' => PROJECT_ROOT . '/src/views']);
$injector->share($slim);
/**
 * Prepare View
 */
$slim->view->parserOptions['debug'] = true;
#$slim->view->parserOptions['cache'] = $slim->config('templates.path').'/cache';
$slim->view->parserExtensions[] = new \Slim\Views\TwigExtension();
$slim->view->parserExtensions[] = new \Twig_Extension_Debug();
/**
 * Load the Middleware class with clasures for loading controllers and middlewares
 */
$mws = $injector->make(\ZerobRSS\Middlewares::class);
/**
 * Prepare Routes
 */
$slim->get('/', $mws->auth('users'), $mws->db(), $mws->controllerLoader('Index', 'get'));
示例#11
0
<?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;
示例#12
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');
示例#13
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;
});
示例#14
0
 /**
  * @group debugging
  */
 public function testCheckMtimeCoverage()
 {
     $jigConfig = new JigConfig($this->templateDirectory, $this->compileDirectory, Jig::COMPILE_CHECK_MTIME, "php.tpl");
     $provider = new \Auryn\Injector();
     $provider->share($jigConfig);
     $provider->share($provider);
     $jig = new \Jig\JigDispatcher($jigConfig, $provider);
     $templateName = "coverageTesting/mtimeonce";
     $this->jigDispatcher->deleteCompiledFile($templateName);
     $jig->renderTemplateFile($templateName);
     $filename = $jig->getCompiledFilenameFromTemplateName($templateName);
     touch($filename, time() - 3600);
     // will break if the test takes an hour ;)
     $jig->renderTemplateFile($templateName);
 }
示例#15
0
<?php

$injector = new \Auryn\Injector();
$connectionParams = ['driver' => 'pdo_sqlite', 'path' => \Jehaby\Exesise\Config::getDir() . '/storage/database.sqlite'];
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
$injector->share($conn);
$injector->alias(\Symfony\Component\Console\Output\OutputInterface::class, \Symfony\Component\Console\Output\ConsoleOutput::class);
$injector->define(\Monolog\Logger::class, ['defaultLogger', [new \Monolog\Handler\StreamHandler('storage/default.log')]]);
$injector->alias(\Psr\Log\LoggerInterface::class, \Monolog\Logger::class);
$injector->share(\Monolog\Logger::class);
示例#16
0
<?php

// Require .env for db config.
if (!is_file($env = __DIR__ . '/../.env')) {
    throw new RuntimeException('Please create a .env file before starting the app!');
}
require __DIR__ . '/../vendor/autoload.php';
//Load ENV vars.
$env = (new josegonzalez\Dotenv\Loader($env))->parse()->toArray();
//Create Injector for PDO db connection.
$injector = new \Auryn\Injector();
$injector->define('PDO', [':dsn' => 'mysql:host=localhost;dbname=' . $env['db_database'], ':username' => $env['db_username'], ':passwd' => $env['db_password']]);
$injector->share('PDO');
$injector->share('FluentPDO');
$app = Spark\Application::boot($injector);
$app->setMiddleware(['Relay\\Middleware\\ResponseSender', 'Spark\\Handler\\ExceptionHandler', 'Spark\\Handler\\RouteHandler', 'Spark\\Handler\\ActionHandler']);
$app->addRoutes(function (Spark\Router $r) {
    $r->get('/', 'Spark\\Project\\Domain\\APIDocs');
    // TODO: Implement a login/logout and pass around tokens instead of just the user's ID every call.
    /*
     * Notes on Auth Layer:
     * This API currently *only* covers the User Stories listed in the assignment
     * As such it does not currently handle any validation of the user being who they claim to be.
     * It does verify that the userId (employee or manager) is valid for the type of request issued.
     * The current userId field should be replaced with a validated token when validation is added.
     * I did not add an authentication layer, as the user stories do not reference how the login would occur
     * We might do oauth or direct API via a POST to create a login token, etc.
     */
    //Employees can only GET (read) information.
    $r->get('/myshifts[/{employeeId}]', 'Spark\\Project\\Domain\\Employee\\Shifts');
    $r->get('/mycoworkers[/{employeeId}]', 'Spark\\Project\\Domain\\Employee\\Coworkers');
示例#17
0
文件: bootstrap.php 项目: exts/app
 */
use Framework\Render\Twig;
use Framework\Render\View;
/**
 * -------------------------------
 * | AUTOLOAD/DIRECTORY DEFINTIONS
 * -------------------------------
 */
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/paths.php';
/**
 * -------------------------------
 * | DEPENDENCY INJECTOR
 * -------------------------------
 */
$injector = new Auryn\Injector();
/**
 * -------------------------------
 * | SETUP CONFIG
 * -------------------------------
 */
$injector->share(YamlLoader::class);
$injector->define(YamlLoader::class, [':directory' => PATH['CONFIG']]);
$injector->define(Config::class, ['loader' => YamlLoader::class]);
/** @var Config $config */
$config = $injector->make(Config::class);
/**
 * -------------------------------
 * | SETUP TWIG
 * -------------------------------
 */
示例#18
0
文件: index.php 项目: ameech/shifty
<?php

define('APP_PATH', realpath(__DIR__ . '/..') . DIRECTORY_SEPARATOR);
require APP_PATH . 'vendor/autoload.php';
$fpdo = new FluentPDO(new PDO("mysql:dbname=shifty", "root"));
$injector = new \Auryn\Injector();
$injector->share($fpdo);
$app = Spark\Application::boot($injector);
$app->addRoutes(function (Spark\Router $r) {
    $r->get('/shifts', 'Spark\\Project\\Action\\Shift\\GetList');
});
$app->run();
示例#19
0
require __DIR__ . '/../src/Service/ParamsHelper.php';
require __DIR__ . '/../src/AuthorizedDomain.php';
// require __DIR__ . '/../src/hacks.php';
// require __DIR__ . '/../src/Exception/AuthException.php'; // REMOVE THIS
use Illuminate\Database\Capsule\Manager as Capsule;
/**
 * Configure the database and boot Eloquent
 */
$capsule = new Capsule();
$capsule->addConnection(['driver' => 'mysql', 'host' => 'localhost', 'database' => 'spark-project', 'username' => 'homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
// set timezone for timestamps etc
date_default_timezone_set('UTC');
$auth = new \ShiftApi\Service\Auth();
$injector = new \Auryn\Injector();
$injector->share($auth);
$paramsHelper = new \ShiftApi\Service\ParamsHelper();
$injector->share($paramsHelper);
$app = Spark\Application::boot($injector);
$app->setMiddleware(['Relay\\Middleware\\ResponseSender', 'Spark\\Handler\\ExceptionHandler', 'Spark\\Handler\\RouteHandler', 'Spark\\Handler\\ActionHandler']);
$app->addRoutes(function (Spark\Router $r) {
    $r->get('/shifts', 'Spark\\Project\\Domain\\ListShifts');
    $r->post('/shifts', 'Spark\\Project\\Domain\\CreateShift');
    $r->put('/shifts', 'Spark\\Project\\Domain\\UpdateShift');
    $r->get('/me/shifts', 'Spark\\Project\\Domain\\ListMyShifts');
    $r->get('/me/shifts/{id}', 'Spark\\Project\\Domain\\ShowMyShift');
    $r->get('/employees', 'Spark\\Project\\Domain\\ListEmployees');
    $r->get('/employees/{id}', 'Spark\\Project\\Domain\\ShowEmployee');
    //
    $r->get('/me/workweeks/{date}', 'Spark\\Project\\Domain\\ShowWorkweekByDate');
示例#20
0
<?php

namespace Src;

$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->alias('Src\\Template\\Renderer', 'Src\\Template\\MustacheRenderer');
$injector->define('Mustache_Engine', [':options' => ['loader' => new \Mustache_Loader_FilesystemLoader(dirname(__DIR__) . '/src/template/views', ['extension' => '.html'])]]);
return $injector;
/**
 ********** SHARE *********
 *	Coming soon
 */
/**
 ********** ALIAS ********* 
 * Just like define, but instead of injecting raw data through the constructor, we create or 
 * add an instance of a class (object), this is called dependency injecton
 * @example see below
 */
/**
 * interface Engine {}		
 * class V8 implements Engine {}
 * class V6 implements Engine {}
 * class Car {
 *   private $engine;
 *   public function __construct(Engine $engine) {
 *       $this->engine = $engine;
<?php

$t1 = microtime(true);
$injector = new Auryn\Injector();
for ($i = 0; $i < 10000; $i++) {
    $a = $injector->make('A');
}
$t2 = microtime(true);
$results = ['time' => $t2 - $t1, 'files' => count(get_included_files()), 'memory' => memory_get_peak_usage() / 1024 / 1024];
echo json_encode($results);
示例#22
0
<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
$config = (include_once __DIR__ . '/../config/config.php');
$route = (include_once __DIR__ . '/../config/route.php');
$baseDir = $config['baseDir'];
$injector = new Auryn\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;
};
示例#23
0
<?php

$injector = new \Auryn\Injector();
// Http request and response
$injector->share('Symfony\\Component\\HttpFoundation\\Request');
$injector->define('Symfony\\Component\\HttpFoundation\\Request', [':query' => $_GET, ':request' => $_POST, ':attributes' => array(), ':cookies' => $_COOKIE, ':files' => $_FILES, ':server' => $_SERVER]);
$injector->share('Symfony\\Component\\HttpFoundation\\Response');
// Templating engine
$injector->alias('Pics\\Template\\Renderer', 'Pics\\Template\\MustacheRenderer');
$injector->define('Mustache_Engine', [':options' => ['cache' => '/tmp/cache/mustache', 'loader' => new Mustache_Loader_FilesystemLoader(dirname(__DIR__) . '/templates', ['extension' => '.html'])]]);
// Database
$injector->share('PDO');
$injector->define('PDO', [':dsn' => $config['database']['dsn'], ':username' => $config['database']['username'], ':password' => $config['database']['password'], ':options' => array(\PDO::ATTR_PERSISTENT => true)]);
$injector->alias('Pics\\Repositories\\PicRepositoryInterface', 'Pics\\Repositories\\PSQLPicRepository');
$injector->alias('Pics\\Repositories\\CommentRepositoryInterface', 'Pics\\Repositories\\PSQLCommentRepository');
// Memcached
$injector->share('Memcached');
// File storage
$injector->share('Pics\\Storage\\AzureFileStorage');
$injector->define('Pics\\Storage\\AzureFileStorage', [':connectionString' => $config['azureConnString'], ':container' => $config['azureBlobContainer'], ':url' => $config['azureCDNUrl']]);
$injector->alias('Pics\\Storage\\FileStorageInterface', 'Pics\\Storage\\AzureFileStorage');
return $injector;
示例#24
0
<?php

$injector = new Auryn\Injector();
$injector->share('Framework\\Http\\Request');
$injector->define('Framework\\Http\\Request', [':query' => $_GET, ':request' => $_POST, '' => array(), ':server' => $_SERVER, ':files' => $_FILES, ':cookies' => $_COOKIE]);
$injector->share('Framework\\Http\\Response');
$injector->define('League\\Plates\\Engine', [':directory' => __DIR__ . '/../templates']);
$injector->alias('Framework\\Templates\\Renderer', 'Framework\\Templates\\PlatesRenderer');
$injector->share('Framework\\Templates\\PlatesRenderer');
$injector->define('Framework\\Page\\FilePageReader', [':pageFolder' => __DIR__ . '/../pages']);
$injector->alias('Framework\\Page\\PageReader', 'Framework\\Page\\FilePageReader');
$injector->share('Framework\\Page\\FilePageReader');
$injector->alias('Framework\\Templates\\FrontendRenderer', 'Framework\\Templates\\FrontendPlatesRenderer');
$injector->share('Framework\\Templates\\FrontendPlatesRenderer');
return $injector;
示例#25
0
<?php

/**
* Returns $injector
*/
$config = (require __DIR__ . '/config.php');
$injector = new Auryn\Injector();
$injector->define('SQLite3', [':filename' => __DIR__ . '/storage/sqlite.db', ':flags' => \SQLITE3_OPEN_READWRITE | \SQLITE3_OPEN_CREATE, ':encryption_key' => $config['ENCRYPTION_KEY']]);
$injector->share('SQLite3');
return $injector;
示例#26
0
<?php

$injector = new \Auryn\Injector();
$injector->alias('Response', 'Symfony\\Component\\HttpFoundation\\Response');
$injector->share('Symfony\\Component\\HttpFoundation\\Response');
$injector->alias('Request', 'Symfony\\Component\\HttpFoundation\\Request');
$injector->share('Symfony\\Component\\HttpFoundation\\Request');
$injector->define('Symfony\\Component\\HttpFoundation\\Request', [':query' => $_GET, ':request' => $_POST, ':attributes' => array(), ':cookies' => $_COOKIE, ':files' => $_FILES, ':server' => $_SERVER]);
$injector->alias('DiffProvider', 'Karadiff\\Diff\\Providers\\DiffProvider');
$injector->share('Karadiff\\Diff\\Providers\\DiffProvider');
return $injector;
<?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
示例#28
0
<?php

use Symfony\Component\HttpFoundation\Request;
$injector = new \Auryn\Injector();
$request = Request::createFromGlobals();
$injector->share($request);
$twig = new \Twig_Environment(new \Twig_Loader_Filesystem('../resources/views/'), ['cache' => '../storage/twig-cache/']);
$injector->share($twig);
$injector->define('Jehaby\\Homepage\\Page\\FilePageReader', [':pageFolder' => __DIR__ . '/../resources/pages/']);
$injector->alias('Jehaby\\Homepage\\Page\\PageReader', 'Jehaby\\Homepage\\Page\\FilePageReader');
$injector->share('Jehaby\\Homepage\\Page\\FilePageReader');
return $injector;
<?php

// di
$injector = new \Auryn\Injector();
$signer = new Kunststube\CSRFP\SignatureGenerator(getenv('CSRF_SECRET'));
$injector->share($signer);
$blade = new duncan3dc\Laravel\BladeInstance(getenv('VIEWS_DIRECTORY'), getenv('CACHE_DIRECTORY'));
$injector->share($blade);
$injector->make('Acme\\Http\\Request');
$injector->make('Acme\\Http\\Response');
$injector->make('Acme\\Http\\Session');
$injector->share('Acme\\Http\\Request');
$injector->share('Acme\\Http\\Response');
$injector->share('Acme\\Http\\Session');
$injector->define('Acme\\Auth\\LoggedIn', ['session' => 'Acme\\Http\\Session']);
$injector->make('Acme\\Auth\\LoggedIn');
return $injector;
示例#30
0
<?php

/**
 * Dependencies
 *
 * This application uses Auryn. You can find docuentation here
 * https://github.com/rdlowrey/Auryn.
 *
 * @author James Byrne <*****@*****.**>
 */
$injector = new \Auryn\Injector();
/**
 * Every time the type-hint of 1st argument is found inject an 
 * instance of second argument.
 */
$injector->alias('Jay\\System\\Template', 'Jay\\System\\Template\\TwigRenderer');
$injector->alias('Jay\\System\\Adapter', 'Jay\\System\\Database\\PDOAdapter');
/**
 * Share the same instance across application
 */
$injector->share('Symfony\\Component\\HttpFoundation\\Request');
$injector->share('Symfony\\Component\\HttpFoundation\\Response');
/**
 * The below dependencies have construct parameters that are scalar
 * or non-object. These arguments are defined below. Some parameter 
 * names can be prefixed with : as by default, Auryn assumes all 
 * paramter names are classes - prefixing with : removes this behaviour. 
 */
$injector->define('Symfony\\Component\\HttpFoundation\\Request', [$_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER]);
$injector->define('PDO', ["mysql:host={$config['host']};dbname={$config['database']};charset{$config['charset']}", $config['username'], $config['password']]);
// delegates