示例#1
0
 private static final function loadController()
 {
     $view = \View\ViewBundle::getInstance();
     //$view -> setTemplate( KIT_VIEW_TEMPLATE );
     ////\View\ViewBundle::getInstance() -> setVar( 'path', self::$_path );
     self::prepareController();
     $space = 'App\\Controllers\\' . self::$_controller . 'Controller';
     $e404 = ['controller' => self::$_controller, 'action' => self::$_action];
     if (!\Autoload::nameSpaceExists($space)) {
         return $view->e404($e404);
     }
     $cont = new $space();
     $cont->setTpl(self::$_controller . '/' . self::$_action);
     $act_method = "action" . self::$_action;
     /**
      * Проверка существования метода экшена и выполнение его, или стандартного
      * метода 404 ошибки.
      */
     if (method_exists($cont, $act_method)) {
         $cont->{$act_method}(self::$_furl);
         $cont->exir();
     } else {
         $view->e404($e404);
     }
 }
示例#2
0
 public static function findRule($path)
 {
     $f_path = explode('/', $path);
     $return = [];
     foreach (self::$_relation as $rel_path => $row) {
         if ($path == $rel_path) {
             /**
              * Добавление пустого значения в начало списка, например:
              *  Array
              *  (
              *        [0] =>
              *        [1] => Account
              *        [2] => Authorize
              *  )
              * для дальнейшего использования массива данных системой. Нулевой пустой
              * ключ нужен нормального разбора контроллером FURL
              */
             array_unshift($row, '');
             return $row;
         } else {
             $furl = explode('/', $rel_path);
             foreach ($furl as $i => $frow) {
                 if (isset($f_path[$i]) and $frow == $f_path[$i]) {
                     continue;
                 } else {
                     if ($frow[0] == '{' and $frow[strlen($frow) - 1] == '}') {
                         if (!isset($f_path[$i])) {
                             array_unshift($row, '');
                             $return = $return ?: $row;
                             continue;
                         }
                         $type = ucfirst(preg_replace('#{(.*)}#', '$1', $frow));
                         $ns = "App\\Property\\{$type}";
                         if (!\Autoload::nameSpaceExists($ns)) {
                             break;
                         }
                         $validate = new $ns();
                         if (!$validate->check($f_path[$i])) {
                             break;
                         }
                         array_unshift($row, '');
                         $return = $return ?: $row;
                         $return[] = $f_path[$i];
                         continue;
                     } else {
                         break;
                     }
                 }
             }
         }
     }
     return $return;
 }
示例#3
0
 private function prepareRelation($name)
 {
     $rel = $this->_initRelation[$name];
     $model_name = "App\\Models\\{$rel[1]}";
     if (!\Autoload::nameSpaceExists($model_name)) {
         throw new \Exceptions\DevelException('_RELATION_CORRECT__relname:' . $rel[1]);
     }
     $this->_relationModel[$name] = $model = new $model_name();
     return $model;
 }
示例#4
0
文件: Init.php 项目: deale/dt
 public function initValidate($type)
 {
     if (!preg_match('#^[a-z]{1}[a-z_0-9]{0,24}$#i', $type)) {
         throw new \Exceptions\DevelException('_PROPERTY_INIT_VALIDATE_INCORRECT');
     }
     $this->_validateName = ucfirst($type);
     $validate_name = ucfirst($type);
     $namespace = 'App\\Property\\' . $validate_name;
     if (!\Autoload::nameSpaceExists($namespace)) {
         throw new \Exceptions\DevelException('_VALIDATOR_TYPES_NF__' . $validate_name);
     }
     $this->_validate = new $namespace();
     $this->_tag = $this->getValidate()->getTag();
     $modifier = "App\\Property\\Modifier\\" . $validate_name;
     if (\Autoload::nameSpaceExists($modifier)) {
         $this->_modifier = new $modifier();
     } else {
         $this->_modifier = new \Property\Modifier();
     }
 }