Thinkphp5 常量设置问题
楼主是之前使用了thinkphp3.2快两年了,很早就听说过thinkphp的版本已经到达5了。
不过鉴于早期的版本尚未完善,并没有立即开始学习。最近做一个项目,尝试一下新的知识。
但是在使用的时候,的确不是很方便。文档方面是一个硬伤,不过是开源的,没有什么好吐槽的。
在尝试自定义一些常量的时候,遇到了一些问题。
像3.2版本的,直接就在整个项目下的index.php下面用define去定义一些常量,然后就可以在代码中直接使用。
这次走了旧路,直接在整个项目下找到一个类似3.2版本index定义的think文件。代码如下:
// 定义项目路径
define('APP_PATH', __DIR__ . '/application/'); // 加载框架引导文件
require __DIR__.'/thinkphp/console.php';
在此处,我需要定义上传的常量:
故修改代码为:
// 定义项目路径
define('APP_PATH', __DIR__ . '/application/');
// 定义上传路径
define('UPLOAD_PATH', __DIR__.'/public/uploads/');
// 加载框架引导文件
require __DIR__.'/thinkphp/console.php';
但是在寻找的时候却出现错误:
Use of undefined constant UPLOAD_PATH - assumed 'UPLOAD_PATH'
奇怪的就是你可以输入APP_PATH,并且按住control+鼠标左击,其实是能到达你定义的这个常量的。
我看了一下官方的文档,并没有涉及这方面的讲解,至于收费文档里面有没有就不清出了。毕竟也没购买~~
然后我就看是追踪一下访问的路径,发现前面是访问了public下的,明显,入口文件不是think。
于是我在public目录下找到了正确的入口文件indexphp:
// [ 应用入口文件 ] // 定义应用目录
define('APP_PATH', __DIR__ . '/../application/'); // 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
和think.php有相同的地方。但是上面明显标有应用入口文件说明。
然后思路就清晰了!此处提供三种方法定义:
方法一:
在应用入口文件定义常量
在public/indexphp处将UPLOAD_PATH定义。定义后文件代码为:
// [ 应用入口文件 ] // 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 定义上传目录
define('UPLOAD_PATH', __DIR__.'/public/uploads'); // 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
则可访问UPLOAD_PATH常量(dump(UPLOAD_PATH))。
方法二:
定义一个自己的常量定义文件,例如:
在extend目录下建立const.php文件,在里面输入:
//自定义常量
//上传目录
define('UPLOAD_PATH', __DIR__.'/../public/uploads');
然后再在入口文件内,引入该文件:
// [ 应用入口文件 ] // 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
//方法二:
//引入自定义常量文件
require __DIR__ . '/../extend'. '/const.php';
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
即可访问到该常量的定义。
方法三:
跟踪一下APP_PATH的定义:

发现在三处有定义(工具下的项目有点多~~当前为:documentary):
分别是:public/index.php
thinkphp/base.php
tnink
此时,可以在base.php下找到定义常来的代码。并插入UPLOAD_PATH的定义,即可访问。
不过这种方法并不提倡,因为修改了核心的代码。更新之类的话,自找麻烦了。
Thinkphp5 常量设置问题的更多相关文章
- java常量设置的方式
我们在写java程序的时候,常常有常量设置,如: public interface Const { //性别的常量 public interface Sex{ public final int 男=1 ...
- laravel5.8笔记六:公共函数和常量设置
公共函数 创建bootstrap/common.php <?php // 发送短信 function sendSMS($mobile){ } // 发送邮件 function sendMail( ...
- thinkphp将APP_DEBUG常量设置为false后报错的问题
ThinkPHP 将 APP_DEBUG 常量设置为 false 后出现了下面的问题: Parse error: syntax error, unexpected T_STRING in \www\R ...
- THINKPHP5获取设置缓存的例子
在THINKPHP5中 缓存的配置放在了config.php文件中 代码如下 如何设置缓存? 可以使用静态方法 Cache::set('key',$value,3600);//存储缓存 Cache:: ...
- java 常量 因为常量不依赖对象 所以一般都会将常量设置为 类属性
- WAMP采用别名时ThinkPHP5项目设置方法
打开public目录下的.htaccess文件,并在其中添加 RewriteBase /xxx<IfModule mod_rewrite.c> Options +FollowSymlink ...
- Java 静态变量,常量和方法
static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类 ...
- php大力力 [010节]PHP常量
2015-08-23 php大力力010. PHP常量 php大力力 [010节]PHP常量 设置 PHP 常量 如需设置常量,请使用 define() 函数 - 它使用三个参数: 首个参数定义常量的 ...
- 【Struts2学习笔记-3】常量配置
Struts2常量 配置Struts2常量值有3个地方,1)在struts.properties文件中配置常量:2)在web.xml文件中配置FileterDispatcher指定初始化参数来配置常量 ...
随机推荐
- Tree--RedBlackTree详解(2 - 3 - 4Tree)(红黑树)
#topics h2 { background: #2B6695; color: #FFFFFF; font-family: "微软雅黑", "宋体", &qu ...
- Check for Palindromes-FCC
問題: 检查回文字符串 如果给定的字符串是回文,返回true,反之,返回false. 如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文). ...
- JPEG流封装AVI视频
前言:前几天工作任务,要把JPEG流封装为AVI视频,就找了些AVI文件结构资料和示例代码研究了下,现将学习总结及最终完成的可用代码分享出来,由于本人也是现学现用,如有不恰当或错误之处,欢迎提出! 1 ...
- 好用的前端页面性能检测工具—sitespeed.io
引言 最近在做HTTP2技术相关调研,想确认一下HTTP2在什么情境下性能会比HTTP1.x有显著提升,当我把http2的本地环境(nginx+PHP)部署完成后进行相关测试时,我遇到了以下问题: ( ...
- 你真的会阅读Java的异常信息吗?
给出如下异常信息: java.lang.RuntimeException: level 2 exception at com.msh.demo.exceptionStack.Test.fun2(Tes ...
- 使用JS动态修改网页body的背景色
大部分网页默认的背景色为白色,个人感觉比较刺眼,于是写了个JS的脚本去改变body部分的背景色,代码如下: // ==UserScript== // @name ChangeBackgroundCol ...
- HTML5基础知识及相关笔记
HTML5基础 1.1HTML文件的基本结构和W3C标准 1.1.1HTML简介 HTML是一种描述网页的语言,一种超文本标记的语言! 1.1.2HTML文件的基本结构 头部(head) 头部是网页的 ...
- 用MXNet实现mnist的生成对抗网络(GAN)
用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...
- ajax url参数中文乱码解决方法
较好的处理办法,对js的url中的中文参数值使用两次encodeURI(),即encodeURI(encodeURI("url的中文参数值")) JS代码: var name=&q ...
- # C语言程序设计预备作业
一.针对老师和学生是怎样的关系的看法 ==首先我认同邹欣老师的看法,下面也是我自己的一点见解.== #### (1)师生在教育内容的教学上结成授受关系 .从教师与学生的社会角色规定意义上看,在知识上, ...