Ejemplo n.º 1
0
 public function __construct()
 {
     $injector = new Injector();
     $injector->bindToInstance(Injector::class, $injector);
     $this->viewSettings = $injector->get(ViewSettings::class);
     $this->viewSettings->templatePath = __DIR__ . '/templates/';
 }
Ejemplo n.º 2
0
 function render(View $view, array $arguments)
 {
     if (count($arguments) !== 1) {
         throw new \InvalidArgumentException('Exactly one view class must be specified');
     }
     $injectedView = $this->injector->get($arguments[0]);
     return $injectedView->render();
 }
Ejemplo n.º 3
0
 public function testAdvancedInject()
 {
     $injector = new Injector();
     $advanced = $injector->get('Di\\test\\Advanced');
     $this->assertTrue($advanced->bar instanceof Bar);
     $this->assertTrue($advanced->foo instanceof Foo);
     $this->assertTrue($advanced->foo->bar instanceof Bar);
     $this->assertTrue($advanced->bar === $advanced->foo->bar);
 }
Ejemplo n.º 4
0
 /** @codeCoverageIgnore */
 public static function create()
 {
     $injector = new Injector();
     $injector->bind(Injector::class, $injector);
     $request = HttpRequest::create();
     $response = new HttpResponse();
     $router = new Router();
     return new static($injector, $router, $request, $response);
 }
Ejemplo n.º 5
0
 public function testResolvesFromABaseClass()
 {
     $this->markTestIncomplete('Resolving an unknown subclass from a base class is impossible!');
     $injector = new Injector();
     $phpunit = $this;
     $fn = $injector->annotate(function (H $h) use($phpunit) {
         $phpunit->assertInstanceOf(J::class, $h);
     });
     $fn();
 }
Ejemplo n.º 6
0
<?php

ini_set('display_errors', '1');
require_once 'config.php';
require_once 'src/imports.php';
use controller\MasterController;
use Di\Injector;
use Template\ViewSettings;
try {
    $injector = new Injector();
    $injector->bindToInstance(Injector::class, $injector);
    $injector->get(ViewSettings::class)->templatePath = 'src/templates/';
    $masterController = $injector->get(MasterController::class);
    echo $masterController->render();
} catch (\Exception $e) {
    include 'error.php';
    $type = get_class($e);
    $message = $e->getMessage();
    $trace = $e->getTraceAsString();
    error_log(<<<ERROR

====================================================================================
Uncaught Exception: {$type}
{$message}

StackTrace:
{$trace}
====================================================================================

ERROR
);
Ejemplo n.º 7
0
 public static function create()
 {
     $injector = new Injector();
     $injector->bind(Injector::class, $injector);
     return new static($injector);
 }