Говорит ли PSR-12 что-нибудь о том, как следует группировать и сортировать импорт пространства имен и псевдонимы?

Я работаю над автоматизацией качества кода с phpmd, phpcs и phpcpdинструменты. Сниффер кода настроен на --standard=PSR12.

Мне не удалось найти никаких деталей или рекомендаций относительно того, как следует определять импорт пространства имен и псевдонимы:

  • группировка фигурными скобками или определение каждого по отдельности (что на данный момент является моим предвзятым предложением)
  • Сортировка AZ

Например:

use Foo\Bar\{ Lorem, Ipsum, Dolor };

против:

use Foo\Bar\Dolor;
use Foo\Bar\Ipsum;
use Foo\Bar\Lorem;

Если нет стандартной рекомендации, я собираюсь установить внутренние правила в своей команде, но если они есть, я буду счастлив им подчиняться.

1 ответ

Существует пара правил относительно пространств имен, но ни одно из них не требует явного порядка. Однако это указывается относительно глубины при их объявлении:

Составные пространства имен с глубиной более двух НЕ ДОЛЖНЫ использоваться. Следовательно, максимальная допустимая глубина компаундирования указана ниже:

use Vendor\Package\SomeNamespace\{
    SubnamespaceOne\ClassA,
    SubnamespaceOne\ClassB,
    SubnamespaceTwo\ClassY,
    ClassZ,
};

И следующее будет запрещено:

use Vendor\Package\SomeNamespace\{
    SubnamespaceOne\AnotherNamespace\ClassA,
    SubnamespaceOne\ClassB,
    ClassZ,
};

По общему правилу, если это не указано явно, стандарта нет. Либо работает.

Подробнее о действующих правилах можно прочитать здесь:

https://www.php-fig.org/psr/psr-12/

Другие вопросы по тегам