php-cs-fixer 包括供应商名称空间但不包括 src/ 中的包
php-cs-fixer including vendor namespaces but not the bundle in src/
从 symfony 3.4 捆绑包 AppBundle 中的一个简单实体 class 开始,php-cs-fixer 似乎去除了文档字符串使用的导入,但仅在引用 AppBundle/ 时才使用 – vendor/ 中的名称空间似乎是安全的
从以下简单实体开始 class
<?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
文件得到很好的清理,但是所有 phpAppBundle 的文档导入都被删除为未使用
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\EntityManager;
class AclEntries
{
/** @var AclObjectIdentities Object identity */
private $objectIdentity;
/** @var EntityManager Doctrine entity manager */
private $em;
}
我的预期行为应该是 "all imports are equal" 并且 "use AppBundle..." 不会被剥离。
从您当前所在的同一命名空间导入无效,因为 PHP 无论如何都会自动导入它。这就是 PHP CS Fixer 删除它们的原因。如果即使不需要它们也想保留它们,请从配置中删除 no_unused_imports
规则,例如:
php-cs-fixer fix src/AppBundle/Entity/AclEntriesDEBUG.php --rules=@PSR2,@Symfony,-no_unused_imports
从 symfony 3.4 捆绑包 AppBundle 中的一个简单实体 class 开始,php-cs-fixer 似乎去除了文档字符串使用的导入,但仅在引用 AppBundle/ 时才使用 – vendor/ 中的名称空间似乎是安全的
从以下简单实体开始 class
<?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
文件得到很好的清理,但是所有 phpAppBundle 的文档导入都被删除为未使用
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\EntityManager;
class AclEntries
{
/** @var AclObjectIdentities Object identity */
private $objectIdentity;
/** @var EntityManager Doctrine entity manager */
private $em;
}
我的预期行为应该是 "all imports are equal" 并且 "use AppBundle..." 不会被剥离。
从您当前所在的同一命名空间导入无效,因为 PHP 无论如何都会自动导入它。这就是 PHP CS Fixer 删除它们的原因。如果即使不需要它们也想保留它们,请从配置中删除 no_unused_imports
规则,例如:
php-cs-fixer fix src/AppBundle/Entity/AclEntriesDEBUG.php --rules=@PSR2,@Symfony,-no_unused_imports