ThinkPHP 5.1 取消所有内置路径常量,改用 Env::get() 获取环境变量路径;运行时信息由 App:: 方法提供;DS、EXT 等基础常量被移除,改用 PHP 内置常量或原生函数判断。

ThinkPHP 5.0 和 5.1 在获取当前路径(尤其是项目根目录、应用目录等)的方式上有本质变化:5.0 直接使用预定义常量,而 5.1 取消了几乎所有框架内置常量,改用 Env 和 App 门面类方法动态获取。
常量全面取消,改用 Env::get() 获取路径
5.1 不再提供 ROOT_PATH、APP_PATH、CONFIG_PATH 等常量。所有路径需通过 think\facade\Env 类的 get() 方法读取环境变量,例如:
- 项目根目录:Env::get('root_path')(大小写不敏感,也可写 Env::get('ROOT_PATH'))
- 应用目录:Env::get('app_path')
- 配置目录:Env::get('config_path')
- 运行时目录:Env::get('runtime_path')
- 扩展目录:Env::get('root_path') . 'extend/'
部分路径需组合计算,不再直接提供常量
像 LIB_PATH、CORE_PATH、CACHE_PATH 这类“组合路径”,5.1 不再提供对应常量,必须手动拼接:
- 核心库路径:Env::get('think_path') . 'library/think/'(需先确保 think_path 已在 .env 或启动流程中定义)
- 缓存路径:Env::get('runtime_path') . 'cache/'
- 模板路径:默认由 view 配置决定,不可直接用常量,应通过 $this->view->config('view_path', $path) 动态设置
时间与内存等运行时信息改用 App:: 方法
原本的 THINK_START_TIME、THINK_START_MEM、THINK_VERSION 等常量也被移除,统一由 think\facade\App 提供:
立即学习“PHP免费学习笔记(深入)”;
- 启动时间:App::getBeginTime()
- 初始内存:App::getBeginMem()
- 框架版本:App::version()
- 配置文件后缀:App::getConfigExt()(返回 '.php',固定值)
DS 和 EXT 等基础常量不再定义
5.1 不再定义 DS(目录分隔符)、EXT(文件扩展名)等常量:
- 目录分隔符:直接使用 PHP 内置常量 DIRECTORY_SEPARATOR
- 文件扩展名:配置文件固定为 .php,无需动态判断
- Windows 判断:用 PHP 原生函数 PHP_OS_FAMILY === 'Windows' 替代 IS_WIN
- CLI 判断:用 PHP_SAPI === 'cli' 替代 IS_CLI



















