Thinkphp5.1获取项目根目录以及子目录路径的方法实例讲解
作者:祝君圆梦 发布时间:2023-11-20 00:55:58
标签:Thinkphp5,目录
导读:
最近使用Thinkphp5.1做开发,在使用LOG_PATH常量(日志路径)时发生报错,因为之前一直使用5.0的框架,换到5.1版本后,出现这种情况,很明白是官方做了调整,所以特地去看了官方说明。
官方文档:https://www.kancloud.cn/manual/thinkphp5_1/
常量调整
Thinkphp5.1取消了所有的框架内置常量(不影响应用代码中的自定义常量),如需获取,请使用think\facade\App类的内置方法以及think\facade\Env类获取。
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方法获取路径变量的时候不区分大小写。
Thinkphp5.1打印独立日志的方法:
/**
* 打印日志
* $msg 日志内容
*/
function printLog($msg) {
$path=LOG_PATH .date('Y-m-d').".txt";
file_put_contents($path, "【" . date('Y-m-d H:i:s') . "】\r\n" . $msg . "\r\n\r\n", FILE_APPEND);
}
来源:https://blog.csdn.net/qq15577969/article/details/114372000


猜你喜欢
- 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个。诸如此类的问
- 1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制
- python和PHP相比较,python适合做爬虫。原因如下抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python
- 本文实例讲述了Selenium元素的常用操作方法。分享给大家供大家参考,具体如下:Selenium是一个用于Web应用程序测试的工具。Sel
- 最近工作中写了几个存储过程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理
- asp正则表达式检测字符串是否是数字及字母。<% '函数:CheckString(strng) '
- 本文以一个完整实例的形式实现了视频文件上传的功能。虽然是比较基础的应用,仍有一定的参考价值。分享给大家供大家参考之用。具体方法如下:首先,对
- 1,CSS,JS,IMG一个都不能少运行代码框<style type="text/css">&l
- 交换变量 x = 6y = 5x, y = y, xprint x>>> 5print y>>>
- 获取要爬取的URL爬虫前期工作用Pycharm打开项目开始写爬虫文件字段文件items# Define here the models fo
- 事件模型及其原理Backbone.Events就是事件实现的核心,它可以让对象拥有事件能力var Events = Backbone.Eve
- gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用Protocol Buffers编码协议,相比RESTful框
- 1、连接数据库 driver={SQL Server};server=服务器IP;uid=用户名;pwd=密码;database=数据库名
- 本文实例讲述了python中pygame针对游戏窗口的显示方法。分享给大家供大家参考,具体如下:在这篇教程中,我将给出一个demo演示:当我
- 单例模式是一种常见的设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派
- 在python中对一个元组排序我的同事Axel Hecht 给我展示了一些我所不知道的关于python排序的东西。 在python里你可以对
- 成品效果 <body> <div id="game" style="p
- 操作系统:Ubuntu 17.04 64位MySQL版本:MySQL 5.7一、查看3306端口是否开放netstat -an|grep 3
- 本文是总结的一点经验之谈啥是data-key微信小程序推出 data- 属性——自定义属性,为了更好的进行数据传递。总结来说,data-ke
- 列表的创建创建列表,Python底层只提供了唯一一个Python/C API,也就是PyList_New。这个函数接收一个size参数,允许