Skip to content
  1. Система
  2. Что такое xPDO?

Что такое xPDO?

xPDO (open eXtensions to PDO) - это легковесная ORB (object-relational bridge, объектно-реляционный мост) библиотека, работающая на PHP 5, которая помогает пользоваться преимуществами последних стандартов работы с базами данных в PHP, расширением PDO (PHP Data Objects). xPDO реализует очень простой, но эффективный паттерн для доступа к данным Active Record, а также гибкую модель предметной области, позволяющую отделить логику области от логики, специфичной для той или иной базы данных, когда это вам нужно.

Но xPDO - это немного больше, чем простая реализация паттерна. Это еще и способ абстрагирования бизнес-логики приложения от фактически используемых для доступа к данным в БД SQL-запросов и связанных переменных (prepared statements), а также легко описать и обеспечить реализации объектной модели для нескольких целевых платформ баз данных.

Задачей xPDO является быстрое обеспечение фундамента веб-приложения, который легко расширить до полноценной объектной модели, которая может быть оптимизирована насколько это возможно без зависимостей от конкретной платформы.

Причины, по которым следует использовать xPDO

xPDO обладает несколькими высокоуровневыми особенностями:

  • Объектно-ориентированный мост (ORB), который представляет структуры реляционных баз данных в виде объектов ООП;
  • Использует PDO, слой доступа к базам данных, принятый за стандарт для PHP 5.1+, который обеспечивает быстрое взаимодействие с различными реляционными базами данных;
  • Обеспечивает реализацию PDO для версий PHP 4.3.x, 4.4.x и 5.0.x. Хотя некоторые из установок 5.0.x могут содержать родные расширения PDO, добавленные через PECL, но и поддержка для PHP 4, хотя это и имеет некоторые ограничения в использовании всего потенциала PDO, это одна из главных целей всего проекта xPDO;
  • Код ультра-легкий и загружает только то, что ему нужно, по требованию, поэтому практически не добавляет накладных расходов вашим скриптам. Этого добились с помощью использования общих методов и аксессоров и использованием только PHP кода (например, не используется парсинг XML-конфигурации или другие способы сериализации);
  • Стимулирует оптимизацию платформы в соединении с объектной абстракцией;
  • Поддерживает любые базы данных, доступные через реализацию драйвера PDO. (Замечание: на текущий момент поддерживаются MySQL, MSSQL Server и SQLite);
  • Быстрая генерация классов и карты метаданных из схемы модели xPDO. (Замечание: схема модели задается в формате XML, пример - схема MODX);
  • Быстрая генерация xPDO-схемы по существующей схеме базы данных.

Паттерны проектирования

При разработке xPDO использовались несколько паттернов проектирования, которые хорошо описаны в книге Мартина Фаулера «Архитектура корпоративных программных приложений» («Patterns of Enterprise Application Architecture»). Среди них есть следующие и не только:

  • Domain Model
  • Active Record
  • Data Mapper
  • Lazy Load
  • Identity Field
  • Single Table Inheritance
  • Metadata Mapping
  • Query Object

Перед программированием с использованием xPDO будет очень полезно ознакомиться с этими паттернами (и другими из каталога Фаулера); понимание этих концепций поможет не только в изучении xPDO, но и многих других вещей, связанных с программированием.