tp5 怎么获取项目根目录和之前的__ROOT__一样,有没有这样的常量
最佳答案
5.0和5.1的获取方式是不一样的
常量调整
5.1取消了所有的框架内置常量(不影响应用代码中的自定义常量),如需获取,请使用think\facade\App类的内置方法以及think\facade\Env类获取,下面给出的是5.0和5.1的常量对照表:
| 5.0常量 | 5.1获取方法 |
|---|---|
| EXT | 取消,固定使用 .php |
| IS_WIN | 取消 |
| IS_CLI | 取消 |
| DS | 使用PHP自带 DIRECTORY_SEPARATOR |
| ENV_PREFIX | 取消,固定使用PHP_ |
| THINK_START_TIME | App::getBeginTime() |
| THINK_START_MEM | App::getBeginMem() |
| THINK_VERSION | App::version() |
| THINK_PATH | Env::get('think_path') |
| LIB_PATH | Env::get('think_path') . 'library/' |
| CORE_PATH | Env::get('think_path') . 'library/think/' |
| APP_PATH | Env::get('app_path') |
| CONFIG_PATH | Env::get('config_path') |
| CONFIG_EXT | App::getConfigExt() |
| ROOT_PATH | Env::get('root_path') |
| EXTEND_PATH | Env::get('root_path') . 'extend/' |
| VENDOR_PATH | Env::get('root_path') . 'vendor/' |
| RUNTIME_PATH | Env::get('runtime_path') |
| LOG_PATH | Env::get('runtime_path') . 'log/' |
| CACHE_PATH | Env::get('runtime_path') . 'cache/' |
| TEMP_PATH | Env::get('runtime_path') . 'temp/' |
| MODULE_PATH | Env::get('module_path') |
通过Env类的get方法获取路径变量的时候不区分大小写,例如下面的写法是等效的:
Env::get('root_path');
Env::get('ROOT_PATH');
参考资料:https://www.kancloud.cn/manual/thinkphp5_1/354155
其他回答
方法一:使用 App 类获取根目录
use think\facade\App;
$rootPath = App::getRootPath();
方法二:可以看文件:thinkphp/base.php,里面有定义文件夹路径常量
常用路径常量说明(5.0):
- THINK_PATH 框架系统目录
- ROOT_PATH 框架应用根目录
- APP_PATH 应用目录(默认为application)
- CONF_PATH 配置目录(默认为APP_PATH)
- LIB_PATH 系统类库目录(默认为 THINK_PATH.'library/')
- CORE_PATH 系统核心类库目录 (默认为 LIB_PATH.'think/')
- TRAIT_PATH 系统trait目录(默认为 LIB_PATH.'traits/')
- EXTEND_PATH 扩展类库目录(默认为 ROOT_PATH . 'extend/')
- VENDOR_PATH 第三方类库目录(默认为 ROOT_PATH . 'vendor/')
- RUNTIME_PATH 应用运行时目录(默认为 ROOT_PATH.'runtime/')
- LOG_PATH 应用日志目录 (默认为 RUNTIME_PATH.'log/')
- CACHE_PATH 项目模板缓存目录(默认为 RUNTIME_PATH.'cache/')
- TEMP_PATH 应用缓存目录(默认为 RUNTIME_PATH.'temp/')
备选方案:可以自定义常量,或者使用 $_SERVER['HTTP_HOST']

发表评论 取消回复