Сервис DB — это начальная возможность отправки запросов к базам данных. При помощи обёртки над PDO и конфигурации фреймворка HLEB2 для баз данных, сервис предоставляет простые методы обращения к различным БД (поддерживаемых PDO).
Для работы этого сервиса необходимо включенное расширение PHP PDO и необходимые драйверы БД.
Для использования иного способа соединения, например, ORM(Object-Relational Mapping), добавьте создание объекта выбранной ORM как сервис контейнера с настройками из конфигурации фреймворка.
Согласно заявленной структуре проекта, поставляемой с фреймворком HLEB2, сервис DB можно использовать только в классах Моделей.
Класс Модели (шаблон которого можно создать консольной командой) представляет собой базовый каркас для использования в составе MVC (Action-Domain-Responder для веб).
Его можно преобразовать или заменить по своему усмотрению для выбранной библиотеки AR(Active Record) или ORM (а затем изменить шаблон для консольной команды).
Примеры использования в Модели для обращения к базе данных:
Для выполнения запросов к базе данных используются следующие методы сервиса DB.
Метод dbQuery() использовался в приведённых выше примерах для создания прямого SQL-запроса в базу данных. В нём запрос и параметры запроса не разделены, поэтому необходимо обрабатывать (с правильным экранированием) каждый сомнительный параметр, а особенно пришедший из Request, с помощью специального метода quote().
Экранирование параметров запроса позволяет избавить запрос от SQL-инъекций. Такого рода атаки основаны на внедрении в запрос произвольного SQL-выражения как части внешних данных.
Другой метод сервиса DB более универсален и позволяет упростить обработку параметров.
При успешном выполнении метод run() возвращает инициализированный объект PDOStatement. Все методы этого объекта, такие как fetch() и fetchColumn(), стандартные для PDO.
Возможности PDOStatement описаны в документации PDO.
Для асинхронных запросов использование этого сервиса аналогично и зависит от настроек используемого веб-сервера.
Кроме того, некоторые ORM адаптированы к такому режиму работы.
Одной из таких библиотек, согласно её документации, является Cycle ORM.
← Path Сессии →