ThinkPHP 解决模板文件大小写问题
来源:互联网 发布:f网络用语意思是什么 编辑:程序博客网 时间:2024/06/04 19:08
以前使用TP3.1时,没有注意$this->display()默认解析的模板文件大小问题。现在使用TP3.2,在windows下开发没什么毛病,昨晚放在测试服务器上(阿里云CentOS LAMP),竟然报找不到模板文件错误。我的情况是:
- windows下define(‘APP_DEBUG’, true) ‘URL_CASE_INSENSITIVE’ =>true。没问题。
- windows下define(‘APP_DEBUG’, true) ‘URL_CASE_INSENSITIVE’ =>false。没问题。
- windows下define(‘APP_DEBUG’, false) ‘URL_CASE_INSENSITIVE’ =>true。没问题。
- windows下define(‘APP_DEBUG’, false) ‘URL_CASE_INSENSITIVE’ =>false。没问题。
- linux下define(‘APP_DEBUG’, true) ‘URL_CASE_INSENSITIVE’ =>true。报错找不到模板文件。
- linux下define(‘APP_DEBUG’, true) ‘URL_CASE_INSENSITIVE’ =>false。报错找不到模板文件。
- linux下define(‘APP_DEBUG’, false) ‘URL_CASE_INSENSITIVE’ =>true。报错找不到模板文件。
- linux下define(‘APP_DEBUG’, false) ‘URL_CASE_INSENSITIVE’ =>false。报错找不到模板文件。
试了网上说的各种(主要是在Application和ThinkPHP中修改URL_CASE_INSENSITIVE),对我都没用。就暂时在控制器中搜索所有$this->display(),改为$this->display(__FUNCTION__)。删除Application/Runtime。算是暂时用着。
然后开始找资料,论坛上有人提供了修改ThinkPHP中parseTemplate()的代码,但是我复制 粘贴后报语法错误,然后开始注意ThinkPHP/Library/Think/View.class.php的display()方法。
display()方法中调用了fetch()方法来解析获取模板内容,fetch()方法中调用了parseTemplate()方法来获取模板文件,parseTemplate()方法中通过$template = CONTROLLER_NAME . $depr . ACTION_NAME;来处理模板文件名为空(即display()放参数为空)下的定位规则,看到这儿,猜测ACTION_NAME是导致模板文件找不到的原因,在controller中var_dump(ACTION_NAME),果然是小写的。
然后在ThinkPHP中找到ACTION_NAME的定义,ThinkPHP/Library/Think/Dispatcher.class.php的dispatch()通过define(‘ACTION_NAME’, self::getAction($varAction));定义了ACTION_NAME的值,getAction()中通过return strip_tags(strtolower($action));的strtolower()把得到的操作/方法名转为小写返回了,把strtolower删了。
- ThinkPHP 解决模板文件大小写问题
- thinkphp模板大小写问题
- ThinkPHP模板文件中的路径问题
- ThinkPHP--url地址大小写问题
- thinkphp 模板文件错误
- 笔记--ThinkPHP模板文件
- thinkphp模板跳转问题
- thinkphp无法识别数据表名大小写问题
- thinkphp 中数据表名的大小写问题
- ThinkPHP解决递归问题
- 关于ThinkPHP中URL及模板文件名大小写的讨论
- thinkphp模板加载样式文件
- thinkphp模板的一个问题
- ThinkPhp文件下载问题
- thinkPHP上传文件问题
- ThinkPHP框架模板文件中导入css,js文件相关问题
- git提交文件大小写问题
- 解决thinkphp display输出问题
- MyBatis Invalid bound statement (not found)错误
- JavaSE学习----Math类
- 使用python把pdf转换为word然后替换word中的文字内容
- [转]easyui combobox设置选中
- 第二周 项目1 C++的三种参数传递的方法
- ThinkPHP 解决模板文件大小写问题
- 第9周 指针练习:MyMax
- 二路归并排序
- Codeforces Round #433 D
- 如何自建网站(2)
- .net分布式压力测试工具(Beetle.DT)
- 域名遍历搜索python实现
- 比较全面的druid配置信息
- [转]Cassnadra3.X 特性概述