У меня есть небольшая путаница в отношении разницы между ORM и PDO?
Является ли PDO своего рода ORM?
ORM в соответствии с моим пониманием в основном является видом сопоставления данных, а PDO также предоставляет абстракцию для данных базы данных.
PDO и ORM – две совершенно разные вещи.
PDO – это конкретная реализация уровня абстракции доступа к базе данных, он позволяет вам подключаться, запускать SQL и получать результаты из базы данных с помощью API, совместимого с различными бэкэндами базы данных (например, MySQL, PostgreSQL, MS SQL и т. Д.).
ORM, с другой стороны, является чем-то более специализированным: это структура для сопоставления реляционных таблиц с объектами домена приложения и отношениями между ними. Они часто создаются поверх DAL, таких как PDO.
Чтобы увидеть разницу, подумайте о необходимости получить объект или запись. С PDO вам нужно будет написать SQL для выбора правой строки в правой таблице и иметь логику для извлечения этой строки и сопоставление полей с переменными объекта PHP. Вы, как пользователь, должны заботиться обо всем этом. С другой стороны, с ORM вы просто скажете: найдите мне объект X по этому идентификатору, и ORM выполнит свою магию и предоставит вам этот объект без необходимости писать SQL самостоятельно.
Нет, это разные вещи.
PDO – это уровень абстракции для соединений с базами данных SQL, поэтому вы можете использовать один и тот же код для работы с MySQL, PostgreSQL и т. Д.
ORM – это концепция отображения объектов базы данных в объекты. Doctrine – это пример структуры PHP ORM, которая поддерживает различные способы подключения к базам данных, одним из которых является PDO.