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