搜索
系统检测到您的用户名不符合规范:

TP模板因路径大小写获取不到的Bug

浏览:3077 发布日期:2015年05月02日 分类:技术分享 关键字: URL_CASE_INSENSITIVE 大小写 is_file
国外的框架之所以强大,很重要的一个因素是社区的活跃度。提了个问题好几天,没人回答,呵呵!!

在2年前我提过一次建议,没想到今天碰巧见证了我的建议可行性!详情见:http://www.thinkphp.cn/topic/29544.html

这次的问题场景是这样,两台服务器(CentOS)除了php版本不一致,Nginx版本和配置一致。

TP的url关闭了大小写区分 URL_CASE_INSENSITIVE = true,
AttachController.class.php下有个uploadView的方法:public function uploadView()
{
$this->display();
}
注意View驼峰大写。按照逻辑,应该是获取模板目录中的uploadView.html。

但在PHP 5.5.20和PHP5.5.22以上版本的区别如下:





我不清楚是不是php的bug,google了php相关changelog也没发现什么信息点,发现5.5.20的is_file()函数路径是不区分大小写的,我的VM中php和mac自带php也都是5.5.20,所以不管模版命名大小写怎样,都能获取到,

但是5.5.22以上版本,包括另一台服务器版本是5.5.24,is_file()却区分大小写,所以在本地开发预览时没问题,传到服务器上时就出问题了。

这种问题不该归责到php的bug,URL_CASE_INSENSITIVE参数只是控制url区分大小写,如果把模板加载的逻辑也由这个参数控制,那这真是个糟糕的设计,最后我还是不得不参考自己提出的建议:http://www.thinkphp.cn/topic/2020.html
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
jauia
积分:664 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /