【发布时间】:2017-12-18 05:46:59
【问题描述】:
我看过一些关于这个问题的帖子,但没有人回答他们被问到的主题。我有一个 ZendFramework 项目 (v 1.12),我想对文件命名约定进行一些更改。
文件和文件夹以 Pascal 大小写命名,我想进行以下更改:
- 将所有文件/文件夹重命名为小写(可行)
- 我想在单词之间添加破折号 (
"-")。 Zend maual 表示文件名中可能有破折号。但是又说它们应该映射到类名,(类名不能包含-!!)。现在有了Zend Router,它将URL 中的-转换为Pascal 大小写。我该如何操作?
例如,这里是一个文件名:TestingDemoController.php,我想把名字改成testing-democontroller.php(其实我是想改成testing-demo.controller.php但是不知道怎么可能。)对于以前的文件名 URI 曾经类似于 Testing-Demo。如何将路由器配置为不将- 视为特殊字符?
编辑:关于 PSR 的问题:
在@apokryfos 的建议下,我一直在阅读 PSR 版本,主要是 PSR-0 和 PSR-4。
- 查看我的类名(目录用下划线分隔,直到 Terminating 类名)我觉得我们在项目中使用了 PSR-0。
- 关于我更改项目结构的方法(文件名之间有破折号)。这违反了 PSR-4,
终止类名对应于以 .php 结尾的文件名。文件名必须与终止类名的大小写匹配。
以上观点是我唯一反对的观点吗?
- 这就是我对使用文件名(虚线)和写我自己的
autoloader可能发生的后果的感受: 在libraries中查找文件时,我的自动加载器将查找这些文件,如果失败,搜索将退回到最终解决它们的标准自动加载器?这会导致不必要的查找。
如果我理解错了或者遗漏了什么,请在这里纠正我?
【问题讨论】:
-
不管怎样,你所做的与PSR-4 相违背,这是你应该遵循的 PHP 编码标准。
-
好的,谢谢,试着理解它..
-
@apokryfos:我已经更新了问题,能否请您提供一些关于我对 PSR 的理解的意见?
-
违反 PSR-0/4 自动加载标准的唯一后果是您必须自己实现自动加载,而不是使用许多现有的 PSR-0 或 PSR-4 兼容自动加载器之一.如果不将自己的自动加载器捆绑为每个模块的依赖项,您也将无法将项目转换为更加模块化的结构。
-
明白了,虽然我自己会看一下,但你能说如果我说的正确的话,在加载库文件时,它会回退到标准自动加载器,导致不必要的查找吗?
标签: php zend-framework zend-route psr-4 psr-0