Ректор не нашел, что изменить (преобразование аннотаций доктрины в атрибуты)

Поскольку Doctrine, похоже, полностью удалила поддержку аннотаций в своих последних обновлениях, я пытаюсь преобразовать аннотации в своих сущностях в атрибуты с помощью Rector.

Я следовал (казалось бы) простому официальному туториалу — у меня точно такое же содержимое rector.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,
    ]);
};

Я запускаю тест с помощью vendor/bin/rector process src/Entity --dry-run --debug.

Он перечисляет каждую отдельную сущность в src/Entity, но не обнаруживает никаких возможных изменений, когда он должен заменить каждую аннотацию доктрины атрибутами.

У меня такая же проблема с 0.14.6 в одном проекте, но не в другом. Я даже скопировал изменение между проектами, но Ректор подхватывает его только в одном из них. Вы нашли решение за это время?

Maurice 18.10.2022 12:35

@Морис, я не нашел решения

Peter suib 19.10.2022 13:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
2
457
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, вы используете PHPStan? Кажется, что файл конфигурации phpstan.neon автоматически используется Ректором, независимо от того, говорите вы об этом или нет.

я сделал следующее

  • удалить phpstan.neon файл из корневого каталога проекта
  • снова запустите Rector с опцией --clear-cache. Кажется, что без него изменение конфигурации в phpstan.neon не распознается.

И вот ректор снова предлагает изменения.

Кажется, это как-то связано с опцией scanFiles в phpstan.neon. В нашем случае у него была запись для исправления проблем, когда PHPCS принуждает использовать глобальные константы в пользовательских сниффах.

parameters:
    scanFiles:
        - vendor/squizlabs/php_codesniffer/src/Util/Tokens.php

У меня пока нет подробностей. Но, возможно, это может помочь вам.

Спасибо за предложение, но я не использую PHPStan :(

Peter suib 19.10.2022 13:02
Ответ принят как подходящий

У меня была та же проблема, и я решил ее, изменив версию Php в composer.json, как описано здесь: Настройте Rector и используйте простое правило с symfony 6/php8

Просто нужно изменить версию php 7 на 8 "php": ">=7.2.5" в "php": "^8.0"

Я надеюсь, что это поможет :)

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