Говорит ли 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,
};
По общему правилу, если это не указано явно, стандарта нет. Либо работает.
Подробнее о действующих правилах можно прочитать здесь: