gpt4 book ai didi

php - PSR-0 和 PSR-4 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 11:39:57 30 4
gpt4 key购买 nike

最近我读到了关于命名空间以及它们的好处的文章。我目前正在 Laravel 中创建一个项目,并尝试从类映射自动加载转移到命名空间。但是,我似乎无法理解 PSR-0 和 PSR-4 之间的实际区别。

我读过的一些资源是……

我的理解:

  • PSR-4 不会将下划线转换为目录分隔符
  • composer 的某些特定规则会导致目录结构变得复杂,进而使 PSR-0 命名空间变得冗长,因此创建了 PSR-4

将不胜感激提供解释差异的示例。

最佳答案

它们非常相似,因此有点令人困惑也就不足为奇了。总结是 PSR-0 对 PSR-4 删除的 PEAR 风格的类名有一些向后兼容的特性,因此它只支持命名空间代码。除此之外,PSR-4 并不强制你将整个命名空间作为一个目录结构,而只是 anchor 之后的部分。

例如,如果您定义 Acme\Foo\ 命名空间锚定在 src/ 中,使用 PSR-0 意味着它将查找 Acme\src/Acme/Foo/Bar.php 中的 Foo\Bar 而在 PSR-4 中它将在 src/Bar.php 中查找它,允许更短的目录结构。另一方面,有些人更喜欢拥有完整的目录结构以清楚地查看哪个命名空间中的内容,因此您也可以说 Acme\Foo\src/Acme/Foo 与 PSR-4 将提供与上述 PSR-0 行为等效的行为。

对于新项目以及大多数意图和目的来说,长话短说,您可以使用 PSR-4 而忘记 PSR-0。

关于php - PSR-0 和 PSR-4 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24868586/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com