送给2015正在奋斗的你! 当前位置:首页>送给2015正在奋斗的你!>正文

送给2015正在奋斗的你!

发布时间:2019-03-21

原标题:Thinkphp5 常量设置问题

楼主是之前使用了thinkphp3.2快两年了,很早就听说过thinkphp的版本已经到达5了。

不过鉴于早期的版本尚未完善,并没有立即开始学习。最近做一个项目,尝试一下新的知识。

但是在使用的时候,的确不是很方便。文档方面是一个硬伤,不过是开源的,没有什么好吐槽的。

在尝试自定义一些常量的时候,遇到了一些问题。

像3.2版本的,直接就在整个项目下的index.php下面用define去定义一些常量,然后就可以在代码中直接使用。

这次走了旧路,直接在整个项目下找到一个类似3.2版本index定义的think文件。代码如下:

1 // 定义项目路径
2 define("APP_PATH", __DIR__ . "/application/");
3 
4 // 加载框架引导文件
5 require __DIR__."/thinkphp/console.php";

在此处,我需要定义上传的常量:

故修改代码为:

1 // 定义项目路径
2 define("APP_PATH", __DIR__ . "/application/");
3 // 定义上传路径
4 define("UPLOAD_PATH", __DIR__."/public/uploads/");
5 // 加载框架引导文件
6 require __DIR__."/thinkphp/console.php";

但是在寻找的时候却出现错误:

Use of undefined constant UPLOAD_PATH - assumed "UPLOAD_PATH"

奇怪的就是你可以输入APP_PATH,并且按住control+鼠标左击,其实是能到达你定义的这个常量的。

我看了一下官方的文档,并没有涉及这方面的讲解,至于收费文档里面有没有就不清出了。毕竟也没购买~~

然后我就看是追踪一下访问的路径,发现前面是访问了public下的,明显,入口文件不是think。

于是我在public目录下找到了正确的入口文件indexphp:

1 // [ 应用入口文件 ]
2 
3 // 定义应用目录
4 define("APP_PATH", __DIR__ . "/../application/");
5 
6 // 加载框架引导文件
7 require __DIR__ . "/../thinkphp/start.php";

和think.php有相同的地方。但是上面明显标有应用入口文件说明。

然后思路就清晰了!此处提供三种方法定义:

 

方法一:

在应用入口文件定义常量

在public/indexphp处将UPLOAD_PATH定义。定义后文件代码为:

1 // [ 应用入口文件 ]
2 
3 // 定义应用目录
4 define("APP_PATH", __DIR__ . "/../application/");
5 // 定义上传目录
6 define("UPLOAD_PATH", __DIR__."/public/uploads");
7 
8 // 加载框架引导文件
9 require __DIR__ . "/../thinkphp/start.php";

则可访问UPLOAD_PATH常量(dump(UPLOAD_PATH))。

 

方法二:

定义一个自己的常量定义文件,例如:

在extend目录下建立const.php文件,在里面输入:

1 //自定义常量
2 //上传目录
3 define("UPLOAD_PATH", __DIR__."/../public/uploads");

然后再在入口文件内,引入该文件:

1 // [ 应用入口文件 ]
2 
3 // 定义应用目录
4 define("APP_PATH", __DIR__ . "/../application/");
5 //方法二:
6 //引入自定义常量文件
7 require __DIR__ . "/../extend". "/const.php";
8 // 加载框架引导文件
9 require __DIR__ . "/../thinkphp/start.php";

即可访问到该常量的定义。

 

方法三:

跟踪一下APP_PATH的定义:

发现在三处有定义(工具下的项目有点多~~当前为:documentary):

分别是:public/index.php

thinkphp/base.php

tnink

此时,可以在base.php下找到定义常来的代码。并插入UPLOAD_PATH的定义,即可访问。

不过这种方法并不提倡,因为修改了核心的代码。更新之类的话,自找麻烦了。

 

当前文章:http://dehangcd.com/content/03-12/23731/content_1591822225.html

发布时间:2019-03-21 00:57:38

你是那个内心强大的人吗? 长期坚持早起是什么感觉? 小米,今天我们彻底“离婚”吧 罗李华谈八字算命之改运与补运 【情感问答】女孩颜值和心灵美哪个重要 这类碧池碰不得 谁才是真正的中国人?! 我的宇宙观 - 不知能否得诺贝尔无法证明奖! 【情感问答】女孩颜值和心灵美哪个重要 为了合群,我们究竟浪费了多少时间

12964 74570 14522 67794 29353 12909 34011 81595 28478 64080 22489 28224 27420 96641 39373 38376 86860 58209 39412 14228 90014 68221 70470

责任编辑:辛杜

随机推荐