CakePHP 3 将全面采用 PSR-2

从 3.0 版本开始,框架将全面采用 PSR-2 作为 PHP 社区标准。

正如社区中许多人所知,从一开始 CakePHP 就一直维护并遵守自己的 编码标准。然而,自从 CakePHP 创建以来,其他编码标准也出现了,并在整个 PHP 社区中获得了更广泛的采用。为了提高与其他 PHP 项目的一致性,核心团队决定全面采用 PSR-2,从 3.0.0 版本开始。

这不是一个轻率的决定,它涉及团队内部的许多争论;我们都是有自己个人偏好的人,但我们一致认为,采用 PSR-2 的好处 outweighs our personal editor preferences. 我们已经为我们现有的 编码规范 获得了 A+ 等级,其中 99% 与其他主要 PHP 项目相同。

为什么现在要改变?

正如几个月前提到的,一个 RFC 被提议,以使框架更符合通用做法,并被全球 PHP 社区作为普遍共识接受。这引发了关于使用标准的长期争论,以及为什么,谁更喜欢什么以及何时。通过这次讨论,以及看到各种观点,我们决定进行核心投票,是否全面采用 PSR-2 作为标准,从而结束我们部分采用的历史。

当然,这一变化并不意味着你 *必须* 按照 PSR-2 标准编写应用程序。事实上,你可以选择任何与你的编程风格和方法一致的编码标准或约定。如果你愿意,甚至有一些 PSR-2 标准的变体。这一变化主要针对框架核心和扩展代码库的编码风格,如果需要的话,也针对社区插件的编码风格。

好处是什么?

通过采用 PSR-2,我们可以删除或减少与强制执行编码标准相关的维护代码——因为社区中其他部分使用了通用工具来验证和修改 CS 问题,而无需例外。

对于使用 CakePHP 的新用户来说,他们将有看到以他们熟悉的方式格式化的代码的温暖模糊的感觉。

它还允许将任何努力集中到讨论为什么我们维护自己的与 PSR-2 不同的编码标准上,而不是致力于修复 CakePHP 中的错误或添加功能。而且,如果你是一位使用各种框架的开发人员,你就不必在你的 IDE 或部署系统中处理这些框架,以思考 CakePHP 引入的边缘情况。

我们现在做出这一宣布的决定,并与版本发布分开,是为了让社区为即将到来的这一变化做好准备,并让我们能够在必要时推进调整现有代码库的过程。