public static function getStructure($what = null) { if (empty(self::$_structure)) { self::$_structure = new YamlStorage(DC::getApplication()->getRoot() . 'structure.yml'); } return $what ? self::$_structure->getDeepValue($what) : self::$_structure; }
public function forwardToRoute($routeName, $vars = null) { if ($route = DC::getRouter()->getRoute($routeName)) { DC::getRouter()->setCurrentRoute($route)->getCurrentRequest()->setUri($route->buildUri($vars)); $route = new ApplicationRoute($route); DC::getApplication()->setRoute($route); ControllerService::processControllerAction($route->getControllerName(), $route->getActionName()); } }
public function __construct() { parent::__construct(); $this->_sessionToken = RemoteSessionManager::getSessionToken(); $this->_sessionStorage = new SessionStorage(null, 'api_session'); $this->_data = new ArrayStorage(); $action = DC::getApplication()->getRoute()->getActionName(); $action = substr($action, 0, -6); if (!in_array($action, $this->_unprotectedMethods)) { $this->requireAuthorization(); } }
public function configure() { parent::configure(); $this->_slot = new Slot(); $this->_slot->setTemplateDir($this->_view->getTemplatesPath()); $this->_slot->setCompileDir(DC::getEnvironment()->getTmpRoot() . 'templates/' . DC::getApplication()->getName() . '/'); $fs = new FSService(); DC::getAutoloader()->registerSharedPath(DC::getEnvironment()->getUserClassesRoot() . 'helpers'); if ($files = $fs->in(DC::getEnvironment()->getUserClassesRoot() . 'helpers')->find('*Block.php')) { foreach ($files as $file) { $this->_slot->registerBlock(Inflector::underscore(substr($file, strrpos($file, DIRECTORY_SEPARATOR) + 1, -9)), '\\'); } } }
protected function detectTemplate() { $route = DC::getApplication()->getRoute(); $folder = Inflector::slugify(substr($route->getControllerName(), 0, -10)); $action = Inflector::slugify(substr($route->getActionName(), 0, -6)); if (is_file($this->getTemplatesPath() . $folder . '/' . $action . '.slot')) { $this->setTemplateName($folder . '/' . $action); } elseif (is_file($this->getTemplatesPath() . $action . '.slot')) { $this->setTemplateName($action); } else { throw new \Exception('Cannot detect template:' . $folder . '/' . $action); } }