Код: Выделить всё
User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:136)Моя среда:
- PHP: 8.4.16 (cli)
- Doctrine ORM: 3.5.8
- DoctrineBundle: 2.18.1
- Symfony: 7.3.8 (env: dev, debug: true)
Код: Выделить всё
doctrine.yamlКод: Выделить всё
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
Мобильная версия