php-cs-fixer, включая пространства имен вендора, но не пакет в src / - PullRequest
0 голосов
/ 07 июня 2018

Начиная с простого класса сущностей в AppBundle комплекта Symfony 3.4, php-cs-fixer, похоже, удаляет импорт, используемый строками документов, но ТОЛЬКО при обращении к пространствам имен AppBundle / - в вендоре / кажется безопасным

Начиная со следующего простого класса сущностей

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\EntityManager;
use AppBundle\Entity\AclObjectIdentities; // will be removed
use AppBundle\Entity\AclSecurityIdentities; // will be removed

class AclEntries
{
    /** @var AclObjectIdentities Object identity */
    private $objectIdentity;

    /** @var EntityManager Doctrine entity manager */
    private $em;
}

я запускаю команду php-cs-fixer с некоторыми разумными значениями по умолчанию

php-cs-fixer fix src/AppBundle/Entity/AclEntriesDEBUG.php --rules=@PSR2,@Symfony

Файл очищается аккуратно, однако все импорты phpdocв AppBundle удаляются как неиспользованные

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\EntityManager;

class AclEntries
{
    /** @var AclObjectIdentities Object identity */
    private $objectIdentity;

    /** @var EntityManager Doctrine entity manager */
    private $em;
}

Для меня ожидаемое поведение должно заключаться в том, что «все импорты равны», а «use AppBundle ...» не удаляется.

1 Ответ

0 голосов
/ 07 июня 2018

Импорт из того же пространства имен, в котором вы сейчас находитесь, не имеет никакого эффекта, поскольку PHP все равно автоматически его импортирует.Вот почему PHP CS Fixer удалил их.Если вы хотите сохранить их, даже если они не нужны, удалите правило no_unused_imports из вашей конфигурации, например: php-cs-fixer fix src/AppBundle/Entity/AclEntriesDEBUG.php --rules=@PSR2,@Symfony,-no_unused_imports

...