PSR 对命名空间声明后的新行有相当明确的立场:
如果存在,命名空间声明后必须有一个空行。
但是命名空间前的空行呢?是否有任何规则或限制?我相信我在某个地方看到过一些东西,但现在找不到。
PSR-12中的第3. 声明语句、命名空间和导入语句部分讨论了脚本开始的各个部分和状态
PHP 文件的标头可能由许多不同的块组成。如果存在,下面的每个块必须由一个 空行分隔,并且不得包含空行。每个块必须按照下面列出的顺序排列,尽管可以省略不相关的块。
(强调我的)。
以下是示例
<?php
/**
* This file contains an example of coding styles.
*/
declare(strict_types=1);
namespace Vendor\Package;
use Vendor\Package\{ClassA as A, ClassB, ClassC as C};
它显示了间距。
我从中读到的主要内容不是定义之前的空行数,而是更多地定义任何组件之间必须有一个空行。
只是关于PSR-2的评论,确实是状态
已弃用- 截至 2019-08-10 PSR-2 已被标记为已弃用。现在推荐 PSR-12 作为替代品。