diff --git a/base.php b/base.php index 272fd268..f418428d 100644 --- a/base.php +++ b/base.php @@ -9,21 +9,20 @@ // | Author: liu21st // +---------------------------------------------------------------------- -// 开始运行时间和内存使用 +define('THINK_VERSION', '5.0.0 RC3'); define('START_TIME', microtime(true)); define('START_MEM', memory_get_usage()); -// 版本信息 -define('THINK_VERSION', '5.0.0 RC3'); -// 系统常量 -defined('DS') or define('DS', DIRECTORY_SEPARATOR); +define('EXT', '.php'); +define('DS', DIRECTORY_SEPARATOR); defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__) . DS); +define('LIB_PATH', THINK_PATH . 'library' . DS); +define('MODE_PATH', THINK_PATH . 'mode' . DS); // 系统应用模式目录 +define('CORE_PATH', LIB_PATH . 'think' . DS); +define('TRAIT_PATH', LIB_PATH . 'traits' . DS); + defined('APP_PATH') or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']) . DS); defined('ROOT_PATH') or define('ROOT_PATH', dirname(APP_PATH) . DS); -defined('LIB_PATH') or define('LIB_PATH', THINK_PATH . 'library' . DS); defined('EXTEND_PATH') or define('EXTEND_PATH', ROOT_PATH . 'extend' . DS); -defined('MODE_PATH') or define('MODE_PATH', THINK_PATH . 'mode' . DS); // 系统应用模式目录 -defined('CORE_PATH') or define('CORE_PATH', LIB_PATH . 'think' . DS); -defined('TRAIT_PATH') or define('TRAIT_PATH', LIB_PATH . 'traits' . DS); defined('APP_NAMESPACE') or define('APP_NAMESPACE', 'app'); defined('COMMON_MODULE') or define('COMMON_MODULE', 'common'); defined('RUNTIME_PATH') or define('RUNTIME_PATH', ROOT_PATH . 'runtime' . DS); @@ -31,13 +30,8 @@ defined('LOG_PATH') or define('LOG_PATH', RUNTIME_PATH . 'log' . DS); defined('CACHE_PATH') or define('CACHE_PATH', RUNTIME_PATH . 'cache' . DS); defined('TEMP_PATH') or define('TEMP_PATH', RUNTIME_PATH . 'temp' . DS); defined('VENDOR_PATH') or define('VENDOR_PATH', ROOT_PATH . 'vendor' . DS); -defined('EXT') or define('EXT', '.php'); defined('CONF_PATH') or define('CONF_PATH', APP_PATH); // 配置文件目录 defined('CONF_EXT') or define('CONF_EXT', EXT); // 配置文件后缀 -defined('MODEL_LAYER') or define('MODEL_LAYER', 'model'); -defined('VIEW_LAYER') or define('VIEW_LAYER', 'view'); -defined('CONTROLLER_LAYER') or define('CONTROLLER_LAYER', 'controller'); -defined('VALIDATE_LAYER') or define('VALIDATE_LAYER', 'validate'); defined('APP_MULTI_MODULE') or define('APP_MULTI_MODULE', true); // 是否多模块 defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀 defined('IS_API') or define('IS_API', false); // 是否API接口 diff --git a/convention.php b/convention.php index 37a316a7..1cb33eb6 100644 --- a/convention.php +++ b/convention.php @@ -83,6 +83,8 @@ return [ 'url_controller_convert' => true, // 是否自动转换URL中的操作名 'url_action_convert' => true, + // 默认的访问控制器层 + 'url_controller_layer' => 'controller', // 表单请求类型伪装变量 'var_method' => '_method', diff --git a/helper.php b/helper.php index ee301b07..e1443931 100644 --- a/helper.php +++ b/helper.php @@ -146,7 +146,7 @@ function widget($name, $data = []) * @param string $layer 业务层名称 * @return \think\Model */ -function model($name = '', $layer = MODEL_LAYER) +function model($name = '', $layer = 'model') { return Loader::model($name, $layer); } @@ -168,7 +168,7 @@ function db($name = '', $config = []) * @param string $layer 控制层名称 * @return \think\Controller */ -function controller($name, $layer = CONTROLLER_LAYER) +function controller($name, $layer = 'controller') { return Loader::controller($name, $layer); } @@ -180,7 +180,7 @@ function controller($name, $layer = CONTROLLER_LAYER) * @param string $layer 要调用的控制层名称 * @return mixed */ -function action($url, $vars = [], $layer = CONTROLLER_LAYER) +function action($url, $vars = [], $layer = 'controller') { return Loader::action($url, $vars, $layer); } diff --git a/library/think/App.php b/library/think/App.php index 9b0f613a..5e8dc4b7 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -246,7 +246,7 @@ class App // 模块初始化 if (MODULE_NAME && $available) { define('MODULE_PATH', APP_PATH . MODULE_NAME . DS); - define('VIEW_PATH', MODULE_PATH . VIEW_LAYER . DS); + define('VIEW_PATH', MODULE_PATH . 'view' . DS); // 初始化模块 $config = self::initModule(MODULE_NAME, $config); } else { @@ -256,7 +256,7 @@ class App // 单一模块部署 define('MODULE_NAME', ''); define('MODULE_PATH', APP_PATH); - define('VIEW_PATH', MODULE_PATH . VIEW_LAYER . DS); + define('VIEW_PATH', MODULE_PATH . 'view' . DS); } // 获取控制器名 @@ -272,7 +272,7 @@ class App // 安全检测 throw new Exception('illegal controller name:' . CONTROLLER_NAME, 10000); } - $instance = Loader::controller(CONTROLLER_NAME, '', $config['use_controller_suffix'], $config['empty_controller']); + $instance = Loader::controller(CONTROLLER_NAME, $config['url_controller_layer'], $config['use_controller_suffix'], $config['empty_controller']); // 获取当前操作名 $action = ACTION_NAME . $config['action_suffix']; diff --git a/library/think/Build.php b/library/think/Build.php index ada56595..0f23a113 100644 --- a/library/think/Build.php +++ b/library/think/Build.php @@ -132,13 +132,13 @@ class Build $namespace = APP_NAMESPACE . '\\' . ($module ? $module . '\\' : '') . $path; $class = $val . (CLASS_APPEND_SUFFIX ? ucfirst($path) : ''); switch ($path) { - case CONTROLLER_LAYER: // 控制器 + case 'controller': // 控制器 $content = "parseValue($data[0]) . ' AND ' . $this->parseValue($data[1]); } elseif (in_array($exp, ['NOT EXISTS', 'EXISTS'])) { // EXISTS 查询 - $whereStr .= $exp . ' ' . $this->parseClosure($value); + if ($value instanceof \Closure) { + $whereStr .= $exp . ' ' . $this->parseClosure($value); + } else { + $whereStr .= $exp . ' (' . $value . ')'; + } } return $whereStr; } diff --git a/library/think/view/driver/Php.php b/library/think/view/driver/Php.php index abd980f3..9019d7cc 100644 --- a/library/think/view/driver/Php.php +++ b/library/think/view/driver/Php.php @@ -96,7 +96,7 @@ class Php if (strpos($template, '@')) { list($module, $template) = explode('@', $template); - $path = APP_PATH . $module . DS . VIEW_LAYER . DS; + $path = APP_PATH . $module . DS . 'view' . DS; } else { $path = $this->config['view_path']; } diff --git a/library/think/view/driver/Think.php b/library/think/view/driver/Think.php index 167bd36f..c70d8d52 100644 --- a/library/think/view/driver/Think.php +++ b/library/think/view/driver/Think.php @@ -103,7 +103,7 @@ class Think if (strpos($template, '@')) { // 跨模块调用 list($module, $template) = explode('@', $template); - $path = APP_PATH . $module . DS . VIEW_LAYER . DS; + $path = APP_PATH . $module . DS . 'view' . DS; } else { // 当前视图目录 $path = $this->config['view_path']; diff --git a/tests/thinkphp/baseTest.php b/tests/thinkphp/baseTest.php index 85f63a2e..0e0f1e05 100644 --- a/tests/thinkphp/baseTest.php +++ b/tests/thinkphp/baseTest.php @@ -35,9 +35,6 @@ class baseTest extends \PHPUnit_Framework_TestCase $this->assertNotEmpty(TEMP_PATH); $this->assertNotEmpty(VENDOR_PATH); $this->assertNotEmpty(EXT); - $this->assertNotEmpty(MODEL_LAYER); - $this->assertNotEmpty(VIEW_LAYER); - $this->assertNotEmpty(CONTROLLER_LAYER); $this->assertTrue(is_bool(APP_DEBUG)); $this->assertNotEmpty(ENV_PREFIX); $this->assertTrue(is_bool(IS_API));