同一个项目在mac下运行正常,在centos7下找不到控制器

JoeBlackzqq 2018-09-02 08:54:43
如题,用的是thinkphp5.1.18框架,出现题目中说的现象,感觉非常不可思议。
mac下的php版本信息:
[zcm@~ 3]$php -v
PHP 7.2.5 (cli) (built: May 1 2018 09:50:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans
with Zend OPcache v7.2.5, Copyright (c) 1999-2018, by Zend Technologies

centos7下的php信息:
[zcm@txk-centos7 www]$ php -v
PHP 7.2.8 (cli) (built: Jul 20 2018 15:20:01) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

经过调试,发现centos7下找不到控制器的原因是因为我的控制器名字是全小写的,但是他在找控制器时却把控制器首字母给弄成大写了,所以才会找不到控制器!

我感觉应该跟php版本无关,但是thinkphp为什么会有这样的设计呢,实在想不明白 !!

各位如果有环境,可以去测试下,下过来框架后,新建一个控制器,名字用小写,看看在mac和centos7下运行是否正常!!
非常感谢!
...全文
466 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingson_1 2018-09-15
  • 打赏
  • 举报
回复
看下根目录的重写规则,.htaccess文件
JoeBlackzqq 2018-09-12
  • 打赏
  • 举报
回复
引用 3 楼 Bandry 的回复:
是不是mac设置了大小写不敏感


mac哪里可以设置大小写不敏感?我还真不知道!
Bandry 2018-09-07
  • 打赏
  • 举报
回复
是不是mac设置了大小写不敏感
JoeBlackzqq 2018-09-03
  • 打赏
  • 举报
回复
引用 1 楼 w6248117 的回复:
你用框架就有框架约定俗成的东西没有为什么的!大小写的区别跟操作系统有关系,windows是不严格区分大小写的,Linux是严格区分大小写的。mac就不清楚了,因为用不起mac


话也不是那么说吧,请看!

我在tp5框架的config\template.php中发现了
// 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
'auto_rule' => 3,

因为我个人比较喜欢保持原样,所以在mac下开发时将这个参数值改成了3,但是没想到部署到centos7上竟然就出现了题目中标明的错误!

既然框架提供了这样一个配置,那总应该保证他是正确的吧,而且这个框架本身也说支持mac系统的。如果不能保证这是正确的,那也不应该发布出来!就算是bug,那我提出来大家讨论下是否可以呢?

据我猜测,这更多的是一个小bug,因为mac上是支持的,但是centos上却不支持!
另外,我在整个框架下搜索了下,还有2-3处关于auto_rule的,上面标明的解释都只有规则1和2,就是没有3,难道这个3是他们内部人员自己调试时加上去的?

木秀猿林 2018-09-03
  • 打赏
  • 举报
回复
你用框架就有框架约定俗成的东西没有为什么的!大小写的区别跟操作系统有关系,windows是不严格区分大小写的,Linux是严格区分大小写的。mac就不清楚了,因为用不起mac

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧