也许我没有完全理解。我读到 PSR 是 PHP 标准推荐,但是 PSR 有几个版本,例如自动加载器使用 PSR-4 而不是基本编码标准使用 PSR-1
我必须遵循特定的 PSR 版本或者我必须合并它们的好部分?
Symfony 遵循 PSR-0、PSR-1、PSR-2 和 PSR-4 文档中定义的标准,那么每个框架使用不同的 PSR?
您可以将 PSR 视为一种巨大的编码标准。它们相互依赖,但每个 PSR 都独立存在。PSR-2 描述了编码风格指南,而 PSR-4 描述了Autoloading的标准。
这是一个关于PHP 标准建议的网站。您可以在那里找到所有现有 PSR 的完整列表。
PSR 表示 PHP 标准建议 - 所以它只是关于如何处理/格式化 php 应用程序的特定部分的建议。索引只是一个标识 psr 的用途的 ID。不要将其理解为版本号。PSR-0 和 PSR-4 都涵盖了 Autoloader 的处理。
PHP 标准推荐是关于你应该如何编写代码以便其他人易于阅读和使用的。它涵盖了编码风格、文件组织、自动加载和标准化各种接口等主题。PSR 由框架互操作性小组 (FIG) 提出,该小组在 php|tek 2009 会议上提出。其成员包括各种知名 PHP 框架的作者。PSR 绝不是“官方的”;只是框架互操作性小组 (FIG) 包含了一批经验丰富的 PHP 开发人员,他们投票选出最好的编码风格。因此,您可以关注 PSR 的全部或部分内容,也可以不关注。这完全取决于您,但您想要参与的某些项目可能需要您遵循一些 PSR,以便每个人都在同一个页面上。
那么谁是会员?现在有超过 20 名成员(刚开始时只有 5 名),其中包括 CakePHP、Composer、Zend、Lithium、SugarCRM 和 Symphony 的作者。可以这么说,一直在 PHP 块周围的人。
至于 PSR 标准本身,大约有 17 个,但只有 7 个被所有成员接受。其余的仍在投票中,或处于草案状态 [截至 2016 年 9 月]。
(我写了这篇文章,以 PSR-1 为例进行了详细介绍。)