它们非常相似,因此有点混乱也就不足为奇了。总结是,对于PSR-4放弃的PEAR样式类名,PSR-0具有一些向后兼容功能,因此它仅支持命名空间代码。最重要的是,PSR-4并不强制您将整个名称空间作为目录结构,而仅将锚点之后的部分作为目录结构。
例如,如果您定义
AcmeFoo名称空间锚定在
src/PSR-0中,则意味着它将
AcmeFooBar在
src/Acme/Foo/Bar.php其中查找,而在PSR-4中它将在in中查找
src/Bar.php,从而允许使用较短的目录结构。另一方面,有些人更喜欢使用完整的目录结构来清楚地查看哪个名称空间中的内容,因此您也可以说PSR-4
AcmeFoo中
src/Acme/Foo包含该名称空间,这将为您提供与上述PSR-0行为相当的功能。
总而言之,对于新项目以及大多数意图和目的而言,您可以使用PSR-4,而不必理会PSR-0。



