think\Route::import PHP Method

import() public static method

导入配置文件的路由规则
public static import ( array $rule, string $type = '*' ) : void
$rule array 路由规则
$type string 请求类型
return void
    public static function import(array $rule, $type = '*')
    {
        // 检查域名部署
        if (isset($rule['__domain__'])) {
            self::domain($rule['__domain__']);
            unset($rule['__domain__']);
        }
        // 检查变量规则
        if (isset($rule['__pattern__'])) {
            self::pattern($rule['__pattern__']);
            unset($rule['__pattern__']);
        }
        // 检查路由别名
        if (isset($rule['__alias__'])) {
            self::alias($rule['__alias__']);
            unset($rule['__alias__']);
        }
        // 检查资源路由
        if (isset($rule['__rest__'])) {
            self::resource($rule['__rest__']);
            unset($rule['__rest__']);
        }
        self::registerRules($rule, strtoupper($type));
    }

Usage Example

Example #1
0
 protected function buildRouteCache()
 {
     $files = \think\Config::get('route_config_file');
     foreach ($files as $file) {
         if (is_file(CONF_PATH . $file . CONF_EXT)) {
             $config = (include CONF_PATH . $file . CONF_EXT);
             if (is_array($config)) {
                 \think\Route::import($config);
             }
         }
     }
     $rules = \think\Route::rules(true);
     array_walk_recursive($rules, [$this, 'buildClosure']);
     $content = '<?php ' . PHP_EOL . 'return ';
     $content .= var_export($rules, true) . ';';
     $content = str_replace(['\'[__start__', '__end__]\''], '', stripcslashes($content));
     return $content;
 }
All Usage Examples Of think\Route::import