public function bind(\ntentan\Controller $controller, $type) { if ($type == 'ntentan\\Model') { $type = InjectionContainer::singleton(\ntentan\nibii\interfaces\ClassResolverInterface::class)->getModelClassName($controller->getWyfPackage(), null); } return parent::bind($controller, $type); }
public static function get($type) { if (isset(self::$binders[$type])) { return self::getCustomBinder(self::$binders[$type]); } else { return InjectionContainer::singleton(ModelBinderInterface::class); } }
public function testSingleton() { InjectionContainer::bind(TestInterface::class)->to(TestClass::class); $object1 = InjectionContainer::singleton(TestInterface::class); $object2 = InjectionContainer::singleton(TestInterface::class); $object1->setValue(2); $this->assertEquals(2, $object1->getValue()); $this->assertEquals(2, $object2->getValue()); }
public static function getRouter() { return panie\InjectionContainer::singleton(controllers\RouterInterface::class); }
private function loadController($params = []) { $controller = $params['controller']; $action = isset($params['action']) ? $params['action'] : null; // Try to get the classname based on router parameters $controllerClassName = InjectionContainer::singleton(interfaces\ControllerClassResolverInterface::class)->getControllerClassName($controller); // Try to resolve the classname $resolvedControllerClass = InjectionContainer::getResolvedClassName($controllerClassName); if ($resolvedControllerClass) { // use resolved class name $params['controller_path'] = $controller; $controllerInstance = InjectionContainer::resolve($controllerClassName); } else { if (class_exists($controller)) { // use controller class $controllerInstance = InjectionContainer::resolve($controller); } else { $this->attemptedControllers[] = $controllerClassName; return false; } } $this->routerVariables += $params; $controllerInstance->executeControllerAction($action, $params); return true; }
/** * Returns an instance of the current caching backend. * * @return \ntentan\kaikai\CacheBackendInterface */ private static function getInstance() { return \ntentan\panie\InjectionContainer::singleton(self::$backendClass); }
/** * * @return Driver */ public static function getDriver() { return InjectionContainer::singleton(Driver::class); }
public static function getClassName($model, $context = null) { return InjectionContainer::singleton(interfaces\ModelClassResolverInterface::class)->getModelClassName($model, $context); }