Подтвердить что ты не робот

Разница между orm и pdo

У меня есть небольшая путаница в отношении разницы между ORM и PDO?
Является ли PDO своего рода ORM?

ORM в соответствии с моим пониманием в основном является видом сопоставления данных, а PDO также предоставляет абстракцию для данных базы данных.

4b9b3361

Ответ 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.