改进路由规则定义 APP_HOOK常量定义位置移动 便于应用模式自己定义

This commit is contained in:
thinkphp
2016-03-25 15:19:04 +08:00
parent ccfbd46bab
commit 3b6152c83c
3 changed files with 14 additions and 1 deletions

View File

@@ -37,7 +37,6 @@ defined('VIEW_LAYER') or define('VIEW_LAYER', 'view');
defined('CONTROLLER_LAYER') or define('CONTROLLER_LAYER', 'controller'); defined('CONTROLLER_LAYER') or define('CONTROLLER_LAYER', 'controller');
defined('VALIDATE_LAYER') or define('VALIDATE_LAYER', 'validate'); defined('VALIDATE_LAYER') or define('VALIDATE_LAYER', 'validate');
defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块 defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块
defined('APP_HOOK') or define('APP_HOOK', false); // 是否开启HOOK
defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀 defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀
defined('IS_API') or define('IS_API', false); // 是否API接口 defined('IS_API') or define('IS_API', false); // 是否API接口
defined('APP_AUTO_RUN') or define('APP_AUTO_RUN', true); // 是否自动运行 defined('APP_AUTO_RUN') or define('APP_AUTO_RUN', true); // 是否自动运行

View File

@@ -598,6 +598,17 @@ class Route
$m2 = explode('/', $rule); $m2 = explode('/', $rule);
$var = []; $var = [];
foreach ($m2 as $key => $val) { foreach ($m2 as $key => $val) {
// val中定义了多个变量 <id><name>
if (preg_match_all('/<(\w+)>/', $val, $matches)) {
foreach ($matches[1] as $name) {
$val = str_replace('<' . $name . '>', '(' . $pattern[$name] . ')', $val);
}
if (!preg_match('/^' . $val . '$/', $m1[$key])) {
return false;
}
continue;
}
if (0 === strpos($val, '[:')) { if (0 === strpos($val, '[:')) {
// 可选参数 // 可选参数
$val = substr($val, 1, -1); $val = substr($val, 1, -1);

View File

@@ -54,6 +54,9 @@ if (isset($mode['config'])) {
is_array($mode['config']) ? Config::set($mode['config']) : Config::load($mode['config']); is_array($mode['config']) ? Config::set($mode['config']) : Config::load($mode['config']);
} }
// 是否开启HOOK
defined('APP_HOOK') or define('APP_HOOK', false);
// 加载模式行为定义 // 加载模式行为定义
if (APP_HOOK && isset($mode['tags'])) { if (APP_HOOK && isset($mode['tags'])) {
Hook::import($mode['tags']); Hook::import($mode['tags']);