Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php windows与linux中的Zend Framework类文件名_Php_Zend Framework_Frameworks - Fatal编程技术网

Php windows与linux中的Zend Framework类文件名

Php windows与linux中的Zend Framework类文件名,php,zend-framework,frameworks,Php,Zend Framework,Frameworks,背景:我们经常处理用PHP(Zend Framework)开发并托管在linux服务器上的web应用程序。编程团队可能由使用Linux或Windows作为本地开发平台的个人组成 因为Zend模型名映射到文件名中,所以大小写很重要。 程序员可以编写$this->something,其中“something”是linux服务器上文件名为“something.php”的模型 他的代码在Windows开发PC上运行良好,因为“something”将正确映射到Windows上的“something.php

背景:我们经常处理用PHP(Zend Framework)开发并托管在linux服务器上的web应用程序。编程团队可能由使用Linux或Windows作为本地开发平台的个人组成

因为Zend模型名映射到文件名中,所以大小写很重要。 程序员可以编写$this->something,其中“something”是linux服务器上文件名为“something.php”的模型

他的代码在Windows开发PC上运行良好,因为“something”将正确映射到Windows上的“something.php”。但是,当上传到linux服务器时,代码将中断,因为linux上的文件名区分大小写。他应该把代码写成“$this->Something”

因此,最后我的问题是,如果系统检测到代码中的模型名大小写与文件系统中的实际文件名大小写不匹配,Zend Framework配置是否会在Windows中生成错误?

ZF命名约定 Zend Framework编码约定规定应使用大写名称。 一些约定与API文档本身一样重要

如果一个类名由多个 不止一个单词,第一个字母 每个生词都必须大写。 连续的大写字母不可用 允许,例如“Zend_PDF”类是 启用“Zend_Pdf”时不允许 可以接受

类名只能包含 字母数字字符。数字是 允许在类名中使用,但 在大多数情况下是不鼓励的。强调 仅允许代替 路径分隔符;文件名 “Zend/Db/Table.php”必须映射到 类名“Zend_Db_Table”

请注意,您提供的示例是错误的。 但在任何情况下,都要保持模型名称全部大写,并且模型的路径也要与ZF命名约定一致

最后我的问题是,有没有 Zend框架配置将 即使在Windows中也会生成错误,如果 系统检测到以下情况: 代码中的模型名称不匹配 中实际文件名的大小写 文件系统

我不知道,但是在开发服务器/工作站上向ZF副本添加一些签入是非常容易的。ZF使用spl_autoload_寄存器加载类,所有将类名转换为文件系统位置的逻辑都位于加载程序名称空间中

嗯。

也许类似的东西可以帮助你

从未尝试过,但据我所知,您可以定义规则来验证代码,从而根据问题的文件名大小写定义规则


从我读到的内容来看,已经定义了一个
Zend
规则集,可能它已经包含了这种规则(或者也可能是
PEAR
规则集)。

重新标记。泽德!=Zend框架。底线是,没有,坚持命名约定@markus-我们使用命名约定。当程序员输入错误(输入小写而不是大写)时,问题就出现了,它在Windows上仍能无声地工作,然后在Linux上失败。检测到这一点会很好。@royappa:没错,我们的团队在windows上工作,我们在这方面没有问题。如果您使用支持Zend Framework的IDE,您实际上不会有太多机会进行打字。。。我希望您有一个与live相同的登台环境。如果你能在那里发现罕见的病例,这还不够吗?@markus:这种情况很少发生(就像其他类型的打字一样)。是的,我们有一个登台的环境,在那里这是拿起,一切都是测试,然后才付诸行动。我只是希望有一个简单的标志或选项来完全避免这个问题,就像有许多标志用于各种类型的错误检查一样。谢谢你的建议,谢谢!我希望框架本身可能有这样的设置,但如果没有,这是一个很好的建议,说明在哪里可以实现。我们确实理解这些约定,并在定义类和创建文件时遵循它们。这个问题(如果不清楚的话)是关于如何在Windows上检测错误,当用打字错误(小写而不是大写)调用该类时。