1

阅读PSR-4后,我认为它只适合目录很少的小包。
如果包很大,它将有很多自动加载功能可以从子包中加载。(因为我们需要先告诉函数基本目录)
考虑一个CMS或框架

  • 行政
  • 扩展
    • 框架
      • 抽象的
      • 数据库
      • 约会时间
      • 功能
      • 界面
    • 评论
    • 邮政
    • 用户

对于这个 CMS 软件包,PSR-0 是否比 PSR-4 更好?
我的目录结构好吗?
接口和抽象类应该有自己的目录吗?

4

1 回答 1

1

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,则该框架是供应商依赖项。

接口和抽象类应该有自己的目录吗?

我建议将接口或抽象基类保留在同一目录中。

这样可以为您节省一个文件夹 ,),只存放一两个文件。

于 2015-04-22T17:42:01.500 回答