示例#1
0
 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;
 }
示例#2
0
 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());
     }
 }
示例#3
0
 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();
     }
 }
示例#4
0
 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)), '\\');
         }
     }
 }
示例#5
0
文件: View.php 项目: solve/solve
 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);
     }
 }