/** * Constructs the app. * * Checks singleton instance * Adds a dependency injector if none provided * Sets the notFound handler * * @param FactoryDefault $dependencyInjector * @throws \RuntimeException */ public function __construct($dependencyInjector = null) { if (self::$app === null) { if ($dependencyInjector === null) { $dependencyInjector = new FactoryDefault(); } $dependencyInjector->setShared('response', Response::class); $dependencyInjector->setShared('router', Router::class); if (!$dependencyInjector->has('eventsManager')) { $dependencyInjector->setShared('eventsManager', \Phalcon\Events\Manager::class); } if (!$dependencyInjector->has('request')) { $dependencyInjector->setShared('request', \Phalcon\Http\Request::class); } parent::__construct($dependencyInjector); self::$app = $this; $this->setEventsManager($dependencyInjector->getShared('eventsManager')); $this->addHeaderHandler(new HeaderHandler\Accept()); $app = self::$app; $this->_errorHandler = function (\Exception $ex) { return $this->errorHandler($ex); }; $this->_notFoundHandler = function () { return $this->notFoundHandler(); }; } else { throw new \RuntimeException("Can't instance App more than once"); } }
/** * Inject of Phalcon dependency container * * @param \Phalcon\DI\FactoryDefault $dependency * @throws BaseException */ public function __construct(\Phalcon\DI\FactoryDefault $dependency) { if ($dependency->has('config') === true) { $this->config = $dependency->get('config')->sms->toArray(); } else { throw new BaseException('SMS', 'Please setup your configuration to $dependency', 500); } }
/** * Checks if a service is registered in the DI * * @param string $serviceName * * @return bool */ public function hasService($serviceName) { $dependencyInjector = null; $dependencyInjector = $this->_dependencyInjector; if (!is_object($dependencyInjector)) { $dependencyInjector = new FactoryDefault(); $this->_dependencyInjector = $dependencyInjector; } return $dependencyInjector->has($serviceName); }