背景:我们经常处理用PHP(Zend Framework)开发并托管在Linux服务器上的Web应用程序。编程团队可能由可能使用Linux或Windows作为其本地开发平台的个人组成。
因为Zend模型名称被映射到文件名,所以大小写很重要。 程序员可以写$ this->某事,其中“something”是在“Something.php”的linux服务器上有文件名的模型。
他的代码在他的Windows开发PC上运行正常,因为“某些东西”会在Windows上正确映射到“Something.php”。但是当上传到linux服务器时,代码将会中断,因为Linux上的文件名区分大小写。他应该把代码写成“$ this-> Something”。
最后我的问题是,如果系统检测到代码中的模型名称大小写与文件系统中实际文件名的大小写不一致,那么即使在Windows中也会出现Zend Framework配置错误吗?
答案 0 :(得分:2)
所以最后我的问题是,有一个 Zend Framework配置即将 如果,即使在Windows中也会生成错误 系统检测到的情况 代码中的模型名称不匹配 中的实际文件名的情况 文件系统?
不是我知道的,但是在开发服务器/工作站上添加一些ZF副本会非常容易。 ZF使用spl_autoload_register加载类,所有将类名转换为文件系统位置的逻辑都存在于Loader名称空间中。
HTH。
答案 1 :(得分:1)
Zend Framework编码约定规定您应该使用大写名称。 有些公约与API文档本身一样重要。
http://framework.zend.com/manual/en/coding-standard.naming-conventions.html
如果类名由更多组成 不止一个字,第一个字母 每个新单词必须大写。 连续的大写字母不是 允许,例如一个类“Zend_PDF”是 “Zend_Pdf”是不允许的 可以接受的。
和
类名只能包含 字母数字字符。编号是 允许在类名中但是 在大多数情况下气馁。下划线 只允许代替 路径分离器;文件名 “Zend / Db / Table.php”必须映射到 班级名称“Zend_Db_Table”。
请注意,您提供的示例是错误的。 但无论如何,请将模型名称全部保留为大写,并且模型的路径也是大写的,与ZF命名约定一致。
答案 2 :(得分:0)
也许像PHP_CodeSniffer这样的东西可能对你有帮助。
从未尝试过,但根据我的理解,您可以定义规则来验证您的代码,从而根据您的问题的文件名大小写定义规则。
我已经定义了Zend
规则集,可能已经包含了这种规则(或者也可能是PEAR
规则集)。