Обзор классов базы данных

Для работы с базой данных в Joomla применяется набор классов, которые представляют собой уровень абстракции базы данных.

Этот набор классов расположен в /libraries/joomla/database. Он позволяет использовать различные типы SQL баз данных и работать в различных средах с различными префиксами таблиц. Конструктор SQL-запросов улучшает читаемость и упрощает SQL кодинг. Использование уровня абстракции базы данных гарантирует максимальную совместимость и гибкость при разработке расширений.

Кратко рассмотрим, для чего используется каждый из этих классов.

JDatabaseInterface

Интерфейс для классов базы данных.

JDatabase

Класс является коннектором базы данных в Joomla.

Внимание Помечен как deprecated в Joomla 4 - большинство методов перенесены в JDatabaseDriver.

Подробнее о классе.

JDatabaseDriver

Драйвер базы данных - класс для выполнения запросов и получения данных. Также содержит различные служебные функции.

Основные методы:

  • getQuery($new = false) - возвращает объект конструктора запросов;
  • quoteName($name, $as = null) - заключает в кавычки названия таблиц или полей для предотвращения конфликта зарезервированных имен и попыток инъекций;
  • setQuery($query, $offset = 0, $limit = 0) - устанавливает SQL-строку для последующего выполнения;
  • execute() - выполняет SQL-запрос.

Подробнее о классе.

JDatabaseExporter

Класс предназначен для экспорта структуры таблиц в формат XML.

Основные методы:

  • __toString() - экспортирует данные в строку (XML);
  • from($from) - определяет список таблиц для экспорта.

Подробнее о классе.

JDatabaseFactory

Фабрика для создания объектов классов базы данных.

Основные методы:

  • getDriver($name = 'mysqli', $options = array()) - создаёт и возвращает объект класса JDatabaseDriver;
  • getExporter($name, JDatabaseDriver $db = null) - создаёт и возвращает объект класса JDatabaseExporter;
  • getImporter($name, JDatabaseDriver $db = null) - создаёт и возвращает объект класса JDatabaseImporter;
  • getQuery($name, JDatabaseDriver $db = null) - создаёт и возвращает объект класса JDatabaseQuery.

Подробнее о классе.

JDatabaseImporter

Класс предназначен для импорта структуры таблиц из формата XML.

Основные методы:

  • from($from) - определяет источник данных для импорта;
  • mergeStructure() - объединяет входящюю структуру с уже существующей структурой.

Подробнее о классе.

JDatabaseIterator

Класс-итератор для ускорения получения и обработки данных. Реализует стандартные для итераторов методы, такие как: current(), key(), next() и другие.

Подробнее о классе.

JDatabaseQuery

Конструктор запросов (Query Builder). Реализует необходимые методы для составления SQL-запроса, такие как: select(), from(), where(), join() и другие.

Подробнее о классе.

© 2019 BinaryCraft. Все права защищены.