Ответ
Doctrine 1 — это устаревшая ORM (Object-Relational Mapping) библиотека для PHP, предшественница Doctrine 2, которая использовалась в ранних проектах, в том числе с Symfony 1.x. Её ключевые отличия от современной Doctrine:
- Паттерн Active Record: Сущности наследовались от базового класса
Doctrine_Recordи сами управляли своим сохранением, что нарушало принцип единой ответственности.// Doctrine 1: Active Record подход $user = new User(); $user->username = 'john'; $user->save(); // Метод save() в самой сущности - Менее гибкая архитектура: Отсутствовал полноценный Unit of Work, что усложняло управление транзакциями и производительность в сложных сценариях.
- Упрощённый DQL: Язык запросов был менее мощным по сравнению с DQL в Doctrine 2.
Doctrine 2, используемая в современном Symfony, полностью переписана на основе паттерна Data Mapper, что обеспечивает лучшее разделение ответственности, производительность и гибкость. Doctrine 1 не поддерживается и не должна использоваться в новых проектах.