问题描述
WP 核心,许多 WP 插件和 WP coding standards themselves 使用 Space
字符的非常”generous application”(不是缩进,而是括号和括号的”inside”) 。这似乎是 Wordpress 独一无二的 – 这种风格/哲学似乎不存在于其他类似项目中,PHP 或其他方面。
有关此方法的更多信息,请参阅:https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage
示例:foreach ( (array) $foo as $bar ) { ...
我指的是 foreach 之后的空间,第一个 (
之后,以及最后的)
(和上面链接的”Space Usage” 中显示的其他类似的空格) 之前。
这种风格对我来说似乎是不必要的 – 它需要更多的打字和 (意见) 使视觉上更难解析代码 (/意见)
我的愿望不是辩论这种风格是否是一个好主意。相反,我只是想了解为什么这是推荐风格的动机。甚至对 WP 编码标准的评论者都很好奇:
提供给 MK Safi 的问题的答案基本上是:
-
为了可读性
-
现状 (又名 「那就是这样」)
我提出的要求是,在我们的 internal-only 项目中,我个人并未看到采用 WP 编码标准 (关于”Space Usage”) 的价值。但是,如果我缺少某些东西,我很好奇
对于以下 WordPress 的”Space Usage” 样式,是否有超出上述列出的任何理由,表面上是否有效?
最佳解决方案
Resoning
关于”white space”(无论选项卡或空格):这只是个人偏好,阻碍了项目。
WP 编码标准 imo 是一个混乱,可以忽略 – 只要你没有贡献核心,那就是
-
一个不同的故事和
-
风格指南也被忽略。
“[…] it isn’t retroactively applied in bulk on older code as it makes svn/git history very difficult to use. Official policy is that new code should follow the style guide, but if you happen to format adjacent code correctly then so be it, but patches that only format code, or commits that only format code are forbidden.”
– @TomJNowell in the comments
Alternatives
你最好遵守 PSR 标准 (即:2) 或像 Symfony 标准 (或只是你自己的) 这样的东西。
业绩增长工具
没有获得编码标准的利润 (除了有一个分享,少数人讨厌它,而其余的决定),或从更多或更少的标签或空格。如果您担心使用不必要的磁盘空间或可能较慢的程序,您仍然可以在提交时压缩代码 (参见 GitPHPHooks 项目) 。您将获得的好处将从原始文件空间大约增加 5%,几乎等于 HTML 语法压缩/缩小为您提供的效果。有了 Node.js minify tools 可以通过 npm 获得。
我个人认为有用的是 PHP Linter 和_PHP Mess Detector 。我并入 GitPHPHooks 库,所以我不必考虑或关心运行它。
次佳解决方案
点之后的空格是正常的,如 $baz . '-5'
,这种风格用于操作员的许多编码标准 (y + z
) 。
这样做是为了提高可读性,例如其中之一比其他可读性更可读。
$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo
$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo
当与其他”code” 包围时,这变得更加明显。
对于括号 ( 1, 2, 3 )
的空格,我不知道,我猜这个参数也是为了可读性。
这可能会令人困惑,因为 WordPress standards themselves 具有在注释中没有空格的括号的示例,并且代码库本身与某些具有空格的部分混淆,即使在同一个函数中也不会 (见下面的屏幕截图) 。
大多数 PHP 标准实际上是相反的呼吁。括号应该拥抱他们的内容。实际上,其他语言的大多数编码标准写成如下:(1, 2, 3)
,所以 WP 这样做是一个谜。
这是一个从 WordPress 函数进行比较的例子。
较大的版本比较:http://i.imgur.com/nTEbV7v.jpg
我喜欢右边的那个,特别是当看全屏的代码,但这是个人喜好。
参考文献
注:本文内容整合自 google/baidu/bing 翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:gxnotes#qq.com(#替换为 @) 。