PSR-2 Coding Style Guide在标签上选择4个空格缩进。我一直认为标签与空格只是一个偏好问题,而我的这种印象似乎得到了这样一个事实的支持,即使PSR-2项目成员survey也远非一致。但是,indenting部分提供了以下基本原理:
仅使用空格,而不是将空格与制表符混合,有助于避免 差异,补丁,历史记录和注释的问题。指某东西的用途 空间也可以很容易地插入细粒度的子压痕 行间对齐。
我的两个疑问是:
关于差异,补丁,历史记录和注释的说明是否仅限于混合缩进(不需要进一步说明的内容),或者是否存在可由(正确)制表符触发的某些特定问题缩进?
"用于行间对齐的细粒度子缩进"是什么意思?是否有任何特定情况需要插入半缩进? (例子特别受欢迎。)
我很感激你不会只是阅读"标签/空格"并以意见为基础急于关闭。我要求澄清PSR-2中可以使用完全客观答案的两个非常具体的要点。这绝不是一个更好的问题。
答案 0 :(得分:2)
据我所知,当您主要使用vi
来编写PHP文件时,混合制表符和空格非常混乱。这样做的原因很简单,有些客户要求您使用ssh
登录并在远程服务器场上工作,拒绝您下载本地计算机上的任何代码。
在客户非常关注(政府)并且有更多规则要遵循的情况下,这实际上发生在我身上。因此,我们不讨论ssh
+ vi
可能是好的或坏的选择的原因。有时,它根本不是一种选择,而是如果你想要这项工作你必须尊重的强加。
除了编辑器之外,git
,diff
和grep
并不总是喜欢标签。例如,如果您有此代码:
$em = $this->getEntityManager();
// more code...
if ($some_bit)
{
$em = $this->getEntityManager();
// more code...
}
现在你想根据缩进来grep
行:
grep -nri " $em"
grep -nri " $em"
在控制台上编写grep
命令时,选项卡键通常用于自动完成和类似功能。插入标签并不是即时的(您可以尝试\t
但这一切都取决于您实际使用的工具,并不总是可以逃避。)
另一种情况是将代码复制并粘贴到SO中,标签不可用。但这不是PSR-2的关注点,只是对标签的一个小威慑。
对于半缩进,我可以向您展示这个错误对齐的代码,但在某种程度上美学上令人愉悦。我不知道美学是否应该胜过正确的缩进。
嗯,我不喜欢它,但有时候我喜欢它。这都是基于意见的,所以......对待就是这样:一种意见。
$qb->andWhere("a = :a")
->andWhere("b = :b")
->setParameter("a", $a)
->setParameter("b", $b);
所有这些都是有争议的,我没有兴趣捍卫任何这些推理。我也可以使用任何类型的标签和IDE,或者尊重PSR-2或任何其他风格或指南。我根据客户的要求调整我的工作。
答案 1 :(得分:0)
仅关于差异,补丁,历史和注释的说明 限于混合缩进(不需要进一步的东西 解释)或是否有一些可以触发的具体问题 通过(适当的)制表符缩进?
默认情况下,Git为标签显示8个空格,下面是1个标签行,后面是4个空格行。考虑到端子不是很大,8个空间对于差异很大。虽然这可以调整。
“用于行间对齐的细粒度子缩进”是什么意思 究竟?是否有任何特定情况需要 插入半个缩进? (例子特别受欢迎。)
不确定这是否是他们的想法,但是对齐“=”符号或“=>”在将值一起分配时,空格提供准确的数字,具体取决于标签宽度的值,标签看起来很糟糕。即,较小的移位将使值不对齐,较大的移位宽度将在多个选项卡上中断。各个环境的空间看起来相同