阅读PSR-4后,我认为它只适合目录很少的小包。
如果包很大,它将有很多自动加载功能可以从子包中加载。(因为我们需要先告诉函数基本目录)
考虑一个CMS或框架
- 行政
- 扩展
- 库
- 框架
- 抽象的
- 数据库
- 约会时间
- 功能
- 界面
- 评论
- 邮政
- 用户
对于这个 CMS 软件包,PSR-0 是否比 PSR-4 更好?
我的目录结构好吗?
接口和抽象类应该有自己的目录吗?
阅读PSR-4后,我认为它只适合目录很少的小包。
如果包很大,它将有很多自动加载功能可以从子包中加载。(因为我们需要先告诉函数基本目录)
考虑一个CMS或框架
对于这个 CMS 软件包,PSR-0 是否比 PSR-4 更好?
我的目录结构好吗?
接口和抽象类应该有自己的目录吗?
PSR-4 只适用于小包装吗?
不,PSR-4 不仅适用于小包装。Zend 和 Symfony 等标准框架也使用它。
PSR-4 描述了从文件路径自动加载类的规范。它不对您的项目规模做出任何假设。它是完全可互操作的,并且可以与任何其他自动加载规范一起使用。这意味着您也可以使用 PSR-0。
对于这个 CMS 软件包,PSR-0 是否比 PSR-4 更好?
这取决于。如果您的系统使用命名空间来避免与其他供应商的类名冲突,那么 PSR-4 是正确的选择。但总的来说:Autoloader 不在乎,他只是吃 PSR-0 和 PSR-4 类的早餐。
如果你真的想知道:做一个 A/B 测试并比较自动加载速度。
我的目录结构好吗?
这取决于:如果您和您的 CMS 或框架的用户喜欢该结构,那么可以。如果您使用 Composer 进行依赖管理,那么可能lib\ framework
是一匹死马,因为所有包都位于vendor
文件夹中。如果您开发 CMS,则该框架是供应商依赖项。
接口和抽象类应该有自己的目录吗?
我建议将接口或抽象基类保留在同一目录中。
这样可以为您节省一个文件夹 ,),只存放一两个文件。