Объектно-реляционное сопоставление и уровень абстракции базы данных

Я использую Doctrine, которая предоставляет как ORM, так и DBAL.

В чем разница между ними?

Как решить, когда использовать?

Ответы

Ответ 1

DBAL (уровень абстракции DataBase) - это часть программного обеспечения, которая упрощает взаимодействие с базами данных SQL, позволяя использовать их, не беспокоясь о конкретных диалектах или различия между различными поставщиками СУБД. Это в основном позволяет запускать SQL-запросы к СУБД без написания специфического SQL-кода поставщика.

ORM (Object Relational Mapper) - это инструмент, который дает вам представление о работе с структурой данных в памяти, представленной как графический объект с связанными объектами. Это упрощает логику приложения, связанную с операциями SQL, удаляя весь SQL и абстрагируя его в логику ООП. Doctrine 2 ORM просто обрабатывает загрузку и сохранение POPO (обычные старые объекты PHP).

Дополнительную информацию об этой теме можно найти в документации DBAL и документации ORM.