Как полностью устранить прекращение поддержки Doctrine\ORM\Proxy\Autoloader в Symfony с включенными ORM 3.x и Ghost ObjePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как полностью устранить прекращение поддержки Doctrine\ORM\Proxy\Autoloader в Symfony с включенными ORM 3.x и Ghost Obje

Сообщение Anonymous »

Я пытаюсь удалить следующее предупреждение об устаревании из журналов Symfony:

Код: Выделить всё

User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:136)
Несмотря на то, что я обновил свою конфигурацию для использования современных «призрачных объектов» (ленивых объектов), представленных в Doctrine ORM 3, предупреждение сохраняется каждый раз при загрузке ядра или очистке кеша.
Моя среда:
  • PHP: 8.4.16 (cli)
  • Doctrine ORM: 3.5.8
  • DoctrineBundle: 2.18.1
  • Symfony: 7.3.8 (env: dev, debug: true)
Моя текущая конфигурация (

Код: Выделить всё

doctrine.yaml
):[/b]

Код: Выделить всё

doctrine:
orm:
enable_lazy_ghost_objects: true
typed_field_mapper: doctrine.orm.typed_field_mapper.default
report_fields_where_declared: true
validate_xml_mapping: true
auto_mapping: true
# proxy_dir has been removed to avoid legacy proxy generation

Что я пробовал:
  • Включение объектов-призраков: Я установил Enable_lazy_ghost_objects: true во всех средах (включая When@prod).
  • Удаление конфигурации прокси: Я удалил proxy_dir и proxy_namespace, чтобы гарантировать Doctrine не считает необходимым регистрировать устаревший автозагрузчик.
  • Обновление объектов: Все мои объекты используют собственные типы PHP (например, частный ?int $id = null;), что является требованием для пути без устаревших объектов Ghost.
  • Очистка кэша: Я вручную запустил rm -rf var/cache/* и php Кэш bin/console: очистить.
Проблема:
Трассировка стека указывает непосредственно на DoctrineBundle.php:136. Кажется, что Bundle все еще пытается зарегистрировать Doctrine\ORM\Proxy\Autoloader во время процесса загрузки, даже несмотря на то, что конфигурация настроена на использование собственных ленивых объектов.
Мой вопрос:
Существует ли определенный флаг конфигурации или скрытая зависимость, которая заставляет DoctrineBundle вернуться к устаревшему автозагрузчику? Как я могу заставить Bundle полностью пропустить эту регистрацию, чтобы мои журналы были чистыми и мое приложение было готово к использованию в будущем для Doctrine 4?

[2025-12-19T20:04:54.766711+00:00] устарело.INFO: Пользователь устарел: Класс «Doctrine\ORM\Proxy\Autoloader» устарел. Вместо этого используйте собственные ленивые объекты. (Autoloader.php:74, вызываемый DoctrineBundle.php:136, https://github.com/doctrine/orm/pull/12005, package Doctrine/orm) {"Exception":"[object] (ErrorException(code: 0): Пользователь устарел: класс "Doctrine\ORM\Proxy\Autoloader" устарел. Вместо этого используйте собственные ленивые объекты. (Autoloader.php:74, вызываемый DoctrineBundle.php:136, https://github.com/doctrine/orm/pull/12005, package Doctrine/orm)


Подробнее здесь: https://stackoverflow.com/questions/798 ... ony-with-o
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»