WP核心,许多WP插件和WP编码标准本身使用空格字符的“大量应用程序”(不是用于缩进,而是在括号和括号的“内部”)。这似乎是Wordpress所独有的-这种样式/理念在其他类似项目(PHP或其他类似项目)中似乎不存在。

有关此方法的更多信息,请参见:https:// make。 wordpress.org/core/handbook/coding-standards/php/#space-usage

示例:foreach ( (array) $foo as $bar ) { ...

我指的是foreach之后的空间,第一个之后的空间(以及最后一个)(以及上面链接中“空间使用情况”中显示的其他类似空间)之前。

这种样式对我来说似乎不必要-它需要更多的键入操作,并且(opinion)进行解析代码在视觉上更加困难。(/ opinion)

我的愿望不是辩论这种风格是否是一个好主意。相反,我只是想了解为什么这是推荐样式的动机。甚至对WP编码标准的评论者也很好奇:



提供给MK Safi问题的答案实质上是:


对于可读性
现状(又称“就是这样”)

我问的理由是,我个人认为采用WP编码标准并没有太大价值(关于“空间”用法”)在我们仅供内部使用的项目中。但是,我很好奇是否遗漏了某些东西。

除了上面列出的两个以外,是否还有其他理由可以遵循Wordpress的“空间使用”样式?

评论

只要您保持一致,就可以在内部项目中执行所需的操作。附带说明一下,我们使用制表符而不是空格,因此可以说我们需要更少的键入,如果您拥有一个现代的IDE可以为您完成所有格式的设置并可以为您重新设置为不同的样式(例如,崇高的风格),那么这一点都不重要包含软件包,PHPStorm等)

感谢您的评论,@ TomJNowell!我想也许我在“问题”中沟通不畅-我问的更少关于制表符/空格的缩进,而更多地询问了make.wordpress.org/core/handbook/coding-standards/php的“空间使用情况”下提到的规则/…。抱歉,我不太清楚!

没有语法突出显示时,阅读起来会更容易。至少这就是为什么我在内部项目中使用这种样式的原因。我必须经常在带有最小配置的vi的普通控制台中编辑PHP。

FWIW,MediaWiki具有非常相似的样式约定,并且实际上在执行它方面非常严格(至少在核心方面)。他们甚至有一个脚本,可以自动添加缺少的空格。我只能说一会儿就习惯了。

我知道@rinogo,评论有时只是评论,而不是答案:)

#1 楼

引起共鸣
关于“空白”(无论制表符还是空格):这只是个人喜好而已,并随项目而生。您没有为核心做出贡献,这是一个不同的故事,
样式指南也在那里被忽略。


“ [.. 。]它不会追溯应用到较旧的代码上,因为它使svn / git历史记录非常难以使用。官方政策是新代码应遵循样式指南,但如果您碰巧正确格式化了相邻代码,就可以了,但禁止仅格式化代码或只能提交仅格式化代码的补丁。“
-@TomJNowell在注释中

替代品
您最好坚持使用PSR标准(即:2)或Symfony标准之类的东西(或您自己的东西)。
性能提升和工具
拥有编码标准(除了拥有一个共享的和少数民族讨厌它,而其他人则不喜欢它)或没有更多或更少的制表符或空格。如果您担心不必要的磁盘空间使用或程序变慢,可以在提交时仍然压缩代码(请参阅GitPHPHooks项目)。您将从原始文件空间中获得的最大收益约为5%,几乎等于HTML语法压缩/缩小所提供的收益。可以通过npm使用Node.js缩小工具。
我个人真正发现有帮助的是PHP Linter和_PHP Mess Detector。我将两者都整合到了GitPHPHooks库中,因此我不必考虑或关心它的运行。

评论


Core不会忽略样式指南,但是它不会追溯应用到较旧的代码中,因为它使svn / git历史非常难以使用。官方政策是新代码应遵循样式指南,但是如果您碰巧正确设置了相邻代码的格式,就应该这样做,但是禁止仅格式化代码或仅提交仅格式化代码的补丁程序

– Tom J Nowell♦
2015年1月8日在2:46



@TomJNowell因此会导致样式指南无效:)无论如何,请进行编辑并将其添加到答案中。这是值得注意的信息。

– kaiser
2015年1月8日在2:47



我想我不是很清楚我的问题-我在make.wordpress.org/core/handbook/coding-standards/php/…上较少指的是制表符还是空格,而更多是指“空间使用情况”。我将对问题进行更清晰的编辑。

– rinogo
2015年1月8日,下午3:43

@rinogo我第一次看对您,因此是第一段。顺便说一句,我也认为这更具可读性。

– kaiser
2015年1月8日,凌晨3:45

#2 楼

点后的空格是正常的,例如$baz . '-5',此样式在许多用于运算符的编码标准(y + z)中使用。

这样做是为了提高可读性,例如,其中一种比另一种更具可读性。 。

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo


被其他“代码”包围时,这一点变得更加明显。

关于括号( 1, 2, 3 )的空格我不知道,我

它可能会造成混淆,因为WordPress标准本身在带空格的注释中带有带括号的示例,而代码库本身则与带空格的其他部分混淆即使在同一个函数中也不行(请参见下面的屏幕快照)。

大多数PHP标准实际上都要求相反。括号应包含其内容。实际上,大多数其他语言的编码标准都将其编写为:(1, 2, 3),因此WP以这种方式进行操作有点神秘。

这是一个与WordPress函数进行比较的示例。



进行比较的较大版本:http://i.imgur.com/nTEbV7v.jpg

我更喜欢右边的一个,尤其是在观看时全屏代码,但这是个人喜好。

评论


感谢您的回答!的。间距对我来说很有意义。实际上只是一个二进制运算符,就像+或-一样。您对括号“包含”其内容的想法正是我问这个问题的原因。这种行为,再加上像方括号(WP表示使用$ foo ['bar']和$ foo [$ bar])的更奇怪的规则,正是我问这个问题的原因。 :)

– rinogo
2015年1月8日在17:33