Rector 没有发现任何需要更改的内容(将 Doctrine 注释转换为属性)

Pet*_*uib 7 php symfony doctrine-orm rector php-8

由于 Doctrine 似乎在其最新更新中完全删除了注释支持,因此我尝试使用 Rector 将实体中的注释转换为属性。

我遵循(看似)简单的官方教程- 我有完全相同的ector.php内容,没有NetteSetList:

use Rector\Doctrine\Set\DoctrineSetList;
use Rector\Symfony\Set\SymfonySetList;
use Rector\Symfony\Set\SensiolabsSetList;
use Rector\Config\RectorConfig;

return function (RectorConfig $rectorConfig): void {
    $rectorConfig->sets([
        DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
        SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
        SensiolabsSetList::FRAMEWORK_EXTRA_61,
    ]);
};
Run Code Online (Sandbox Code Playgroud)

我用 运行测试vendor/bin/rector process src/Entity --dry-run --debug

它确实列出了 中的每个实体src/Entity,但没有检测到任何可能的更改,此时它应该用属性替换每个学说注释。

小智 8

我遇到了同样的问题,我通过更改composer.json中的Php版本来解决它,如下所述: 配置Rector并使用symfony 6/php8的简单规则

只需要将 php 版本 7 改为 8 "php":">=7.2.5" 改为 "php": "^8.0"

我希望这有帮助:)