public function __construct() { $injector = new Injector(); $injector->bindToInstance(Injector::class, $injector); $this->viewSettings = $injector->get(ViewSettings::class); $this->viewSettings->templatePath = __DIR__ . '/templates/'; }
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(); }
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); }
/** @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); }
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(); }
<?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 );
public static function create() { $injector = new Injector(); $injector->bind(Injector::class, $injector); return new static($injector); }