【问题标题】:Is there a way to break down a namespace in PHP?有没有办法在 PHP 中分解命名空间?
【发布时间】:2020-09-01 01:59:22
【问题描述】:

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

我正在使用严格的 PSR12 标准清理一些代码,我发现这个问题是命名空间变得比配置的 80 个字符长(这是我们的软限制,它产生了一个警告)。

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

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

它们可能会变得很长,尤其是因为我的许多同事喜欢很长的类名,所以我想知道是否有办法将命名空间声明放在多行上?

【问题讨论】:

标签: php phpcs psr-12


【解决方案1】:

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

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

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

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

您也可以创建一个自定义 PHPCS 嗅探器,扩展现有的行长度嗅探器,但不包括命名空间行。

[编辑]注意,在 PHP 8 中,多行命名空间的功能可能会消失:https://3v4l.org/IWbe1

【讨论】:

  • 想知道这是否真的是 PHP 8 中的一个错误。当然看起来像是倒退了一步。
  • 是的,不知道。它仍然是测试版,所以...
  • Bug 80041 已打开。
  • Status: Not a bug 哦,好吧。 :(
  • “因此允许保留关键字出现在其中”哦,这很酷,我会接受的。
猜你喜欢
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 2020-03-15
  • 2011-12-22
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多