Exemplo n.º 1
0
 /**
  *
  */
 public function testInvoker()
 {
     $injector = new Injector();
     $injector->provide('%VALUE%', ValueProvider::init(5));
     $obj = $injector->{InvokableObject::class};
     $invoker = new Invoker($injector);
     $res = $invoker->invoke($obj, 'execute');
     $this->assertEquals($res, 30);
 }
Exemplo n.º 2
0
<?php

namespace Brunt;

use Brunt\Provider\Classes\ClassProvider;
use BruntTest\Testobjects\Car;
use BruntTest\Testobjects\Controller;
use BruntTest\Testobjects\ControllerA;
use BruntTest\Testobjects\Engine;
use BruntTest\Testobjects\FastCar;
use BruntTest\Testobjects\HeavyEngine;
include_once 'fileloader.php';
$inj = new Injector();
$inj->provide(Car::class, ClassProvider::init(FastCar::class));
$inj->provide(Engine::class, ClassProvider::init(HeavyEngine::class));
$inj->provide(Controller::class, ClassProvider::init(ControllerA::class));
$inj->provide('%BASE_URL%', function () {
    return 'http://sysvyz.org/';
});
var_dump($inj->get(Car::class));
var_dump($inj->get(Controller::class));
Exemplo n.º 3
0
 private function buildLazy($count)
 {
     $t = microtime(true);
     $injector = new Injector();
     $injector->provide(ControllerA::class, ClassProvider::init(ControllerA::class)->lazy());
     $injector->provide('%BASE_URL%', ValueProvider::init('%BASE_URL%'));
     $arr = [];
     for ($i = 0; $i < $count; $i++) {
         $arr[] = $injector->get(ControllerA::class);
     }
     return microtime(true) - $t;
 }