Php PSR-4是否仅适用于小包装?

Php PSR-4是否仅适用于小包装?,php,naming-conventions,directory-structure,psr-4,Php,Naming Conventions,Directory Structure,Psr 4,阅读后,我认为它只适合目录很少的小软件包。 如果软件包很大,它将有很多自动加载功能从子软件包加载。(因为我们需要先告诉函数基本目录) 考虑CMS或框架BR> 管理扩展库框架摘要数据库日期时间函数接口评论帖子用户

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

  • 管理
  • 扩展
  • 框架摘要数据库
  • 日期时间
  • 函数接口评论
  • 帖子
  • 用户
我的目录结构好吗?
接口类和抽象类应该有自己的目录吗?

PSR-4是否仅适用于小包装

不,PSR-4不仅仅适用于小包装。Zend和Symfony等标准框架也使用它

PSR-4描述了从文件路径自动加载类的规范。 它对项目的规模没有任何假设。它是完全可互操作的,并且可以在任何其他自动加载规范之外使用。这意味着您也可以使用PSR-0

PSR-0是否比PSR-4更适合此CMS包

视情况而定。如果您的系统使用名称空间来避免与其他供应商的类名冲突,那么PSR-4是正确的选择。但总的来说:自动加载器不在乎,他早餐只吃PSR-0和PSR-4课程

如果您真的想知道:进行A/B测试并比较自动加载速度

我的目录结构好吗

这取决于:如果你和你的CMS或框架的用户喜欢这种结构,那么是的。如果您使用Composer进行依赖关系管理,那么
lib\framework
可能是一匹死马,因为所有包都位于
vendor
文件夹中。如果您开发了一个CMS,那么该框架就是一个供应商依赖关系

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

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


这将为一个或两个文件保存一个文件夹(,)。

取决于是否使用名称空间;尽管大多数现代软件包/库都建议使用名称空间,以避免在类中发生冲突的风险names@MarkBaker我使用名称空间。我给出的名称空间名称与目录相同。那么,使用PSR-0或PSR-4更好吗?如果您使用的是名称空间,请使用PSR-4