有没有一种方法可以分解PHP中的名称空间?

时间:2020-08-31 17:42:37

标签: php phpcs psr-12

我发现自己正在互联网上寻找已经回答过的人,但是我找不到任何人。

我正在使用严格的PSR12标准清理一些代码,发现此问题的原因是名称空间的长度超过了配置的80个字符(这是我们的软限制,会产生警告)。

到目前为止,无论名称有多长,我都找到了一种正确的方法来编写可读代码,同时保持在80行之内。但是对于命名空间,我没有。我们的许多名称空间声明如下:

namespace CompanyName\ProjectName\Domain\SubClasification\Clasification\ModuleName;

它们可能会变得很长,尤其是由于同事中的许多人都喜欢很长的类名,因此我想知道是否有办法将名称空间声明放在多行上?

1 个答案:

答案 0 :(得分:1)

您可以在分隔符上拆分名称空间,因此这是有效的语法:

namespace CompanyName
    \ProjectName
    \Domain
    \SubClasification
    \Clasification
    \ModuleName;

或者,您可以告诉PHPCS忽略下一行:

// phpcs:ignore
namespace CompanyName\ProjectName\Domain\SubClasification\Clasification\ModuleName;

您也许还可以创建自定义PHPCS嗅探,以扩展现有的行长嗅探,但不包括名称空间行。

[EDIT] 注意,在PHP 8中似乎无法对名称空间进行多行处理:https://3v4l.org/IWbe1