/** * Permet de tester la facade DIC */ public function testFacadeDIC() { DIC::set(Connection::class, function (DependencyResolver $dic) { return new Connection('test', 'root', ''); }); $this->assertCount(1, DependencyResolver::getInstance()->singletons); DIC::setFactory(Model::class, function (DependencyResolver $dic) { return new Model($dic->get(Connection::class)); }); $this->assertCount(1, DependencyResolver::getInstance()->factories); $emptyInstance = new EmptyConstruct(); DIC::setInstance($emptyInstance); $this->assertCount(1, DependencyResolver::getInstance()->instancies); $connectionInstance = DIC::get(Connection::class); $this->assertInstanceOf(Connection::class, $connectionInstance); $this->assertSame('test', $connectionInstance->db_name); $constructorInstance = DIC::createInstance(new ReflectionClass(EmptyExistConstruct::class)); $this->assertInstanceOf(EmptyExistConstruct::class, $constructorInstance); }
/** * Permet d'instancier une classe avec la résolution du constructeur * * @param ReflectionClass $class * @return object * @throws DependencyException */ public static function createInstance(ReflectionClass $class) { return DependencyResolver::getInstance()->createInstance($class); }
/** * Permet de tester si la classe n'a qu'une instance */ public function testUniqueInstance() { $base = DependencyResolver::getInstance(); $this->assertSame($base->getObjectId(), DependencyResolver::getInstance()->getObjectId()); }