Статьи

Сравнение уровней абстракции базы данных PHP и плагинов CRUD

В этой статье мы рассмотрим различные уровни абстракции базы данных для PHP. Мы также рассмотрим несколько плагинов базы данных PHP CRUD, которые могут упростить вашу жизнь при взаимодействии с базой данных MySQL.

Как следует из названия, уровень абстракции базы данных — это уровень, который находится между вашим приложением и базовой базой данных. Вы будете использовать слой абстракции базы данных для взаимодействия с вашей базой данных. Преимущество уровня абстракции базы данных состоит в том, что вы можете переключать базовый сервер базы данных, не беспокоясь об изменениях кода в вашем приложении. Уровень абстракции базы данных также упрощает код базы данных и облегчает подключение и обновление базы данных.

Давайте посмотрим на пример, чтобы понять это. Допустим, вы выбрали MySQL как базу данных на начальном этапе разработки приложения. Вы не используете какой-либо уровень абстракции базы данных в своем приложении, поэтому при выполнении операций с базой данных вы в конечном итоге будете писать код, специфичный для серверной части MySQL.

Что если по какой-то причине вам нужно изменить серверную часть базы данных с MySQL на Oracle? Этот переключатель не будет легким. Первое, что вам нужно сделать, это просмотреть каждый бит специфичного для MySQL кода в вашем приложении. Вам нужно будет просмотреть каждую строку кода, которая взаимодействует с серверной частью базы данных MySQL, и заменить ее эквивалентным кодом для новой базы данных.

С другой стороны, если вы использовали уровень абстракции базы данных для взаимодействия с серверной частью базы данных, переключение на другую ODBC-совместимую серверную часть базы данных выполняется в мгновение ока. Вам просто нужно изменить настройки соединения, чтобы отразить новую базу данных. Итак, как вы можете видеть, уровень абстракции базы данных скрывает сложность, позволяя вам взаимодействовать с различными базами данных базы данных.

Посмотрите на следующую диаграмму, чтобы понять, что мы обсуждали до сих пор.

Уровни абстракции базы данных

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

Далее мы рассмотрим несколько вариантов, которые вы можете использовать при повседневной разработке приложений. Давайте кратко рассмотрим варианты, которые мы собираемся обсудить в оставшейся части статьи.

  • PDO
  • Учение DBAL
  • ADOdb
  • PDOModel: абстракция базы данных и вспомогательный класс PHP
  • Система управления данными xCRUD
  • PDO Crud: расширенное приложение PHP CRUD

Первые три опции — PDO, Doctrine DBAL и ADOdb — являются популярными опциями с открытым исходным кодом и бесплатны для использования. Остальные три являются коммерческими вариантами, доступными в CodeCanyon , поэтому вам придется заплатить за них, если вы хотите их использовать. С другой стороны, они предоставляют множество функций, которые позволяют быстро настроить базовые леса в ваших приложениях. Кроме того, они разумно оценены по сравнению с тем, что они предоставляют, как мы увидим позже в этой статье.

В этом разделе мы рассмотрим несколько популярных и бесплатных опций, которые вы можете использовать в качестве уровня абстракции базы данных в ваших PHP-приложениях.

Библиотека PDO (объекты данных PHP) — это расширение PHP, которое предоставляет интерфейс для работы с различными бэкэндами базы данных. Чтобы использовать PDO, вам необходимо установить драйверы PDO для конкретных баз данных, которые вы хотите использовать в своих приложениях.

Поэтому, если вы хотите работать с базой данных MySQL, используя расширение PDO, вам нужно убедиться, что вы включили расширение php_pdo, которое является основным расширением PDO, и расширение pdo_mysql, которое позволяет вам общаться с Сервер MySQL, использующий уровень абстракции базы данных PDO.

Конечно, если вы хотите работать с базой данных, отличной от MySQL, вам придется установить расширение pdo для этой базы данных. Для получения дополнительной информации о поддерживаемых драйверах базы данных в PDO, вы можете посетить страницу драйверов PDO в PDF-руководстве , которая включает в себя все, что вам нужно знать.

Библиотека Doctrine DBAL (уровень абстракции базы данных) является еще одной популярной библиотекой абстракции базы данных, которая предоставляет оболочку для PDO. Doctrine DBAL предоставляет простые в использовании методы API и несколько дополнительных функций по сравнению с использованием отдельного расширения чистого PDO.

Список поддерживаемых поставщиков баз данных Doctrine DBAL:

  • MySQL
  • оракул
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • изморось

Doctrine DBAL разрабатывается в рамках проекта Doctrine, который также предоставляет ORM (объектно-реляционный картограф), который находится на вершине Doctrine DBAL. Doctrine ORM — это инструмент, который позволяет вам писать запросы к базе данных объектно-ориентированным способом. На самом деле, сама ORM — это широкая тема, поэтому здесь мы не будем вдаваться в подробности, но в будущем я напишу статью об ORM.

Наконец, ADOdb — очень популярная библиотека классов и очень старый игрок на этой территории. Это внешняя библиотека, которую вы сначала должны загрузить и настроить в соответствии со своими настройками, если хотите использовать ее. ADOdb также поддерживает широкий спектр баз данных на ваш выбор.

Помимо предоставления компонентов для запросов и обновления базы данных, она также предоставляет объектно-ориентированную библиотеку Active Record, которая работает как ORM так же, как мы обсуждали ранее в разделе Doctrine ORM.

Также вам придется установить соответствующие драйверы для серверных частей базы данных для этой библиотеки так же, как и для расширения PDO. Например, если вы хотите работать с базой данных MySQL, вам нужно установить драйвер mysqli в PHP.

Так что это был быстрый взгляд на пару полезных бесплатных опций. В следующем разделе мы рассмотрим несколько популярных коммерческих вариантов, которые предоставляют гораздо больше возможностей, чем просто абстракция базы данных.

В этом разделе мы обсудим несколько дополнительных параметров, которые вы можете выбрать для библиотеки абстракции базы данных. Фактически, выбранные нами параметры не будут работать только как библиотека абстракции базы данных — они предоставляют намного больше, чем это.

Библиотека PDOModel — это абстракция базы данных и вспомогательный PHP-класс, который построен поверх расширения PDO. Это превосходная оболочка, которая позволяет выполнять операции вставки, обновления, удаления и выбора без написания каких-либо SQL-запросов. Это обеспечивает простоту и удобочитаемость. Фактически он предоставляет функции-оболочки, которые позволяют выполнять сложные операции с использованием простых функций без написания реальных запросов SQL.

На данный момент он поддерживает базы данных MySQL, Postgres, SQlite и SQL Server. Он поддерживает транзакции и пакетные операции, что является важной функцией, если вы хотите импортировать базу данных из внешнего источника. Суть в том, что вы можете экспортировать данные в форматы, такие как CSV, Excel, PDF, XML и другие.

Давайте кратко рассмотрим следующий код, который демонстрирует, как легко использовать помощник PDOModel.

1
2
3
4
5
6
7
8
9
<?php
// initialize the PDOModel class
$pdoModelObj = new PDOModel();
 
// connect to a database
$pdoModelObj->connect(«host», «username», «password», «database_name»);
 
// querying database [select * FROM users]
$result = $pdoModelObj->select(«users»);

Итак, как вы можете видеть, выполнение операций с базой данных с помощью вспомогательного класса PDOModel очень просто. Для получения дополнительной информации вы можете посетить официальную страницу PDOModel на CodeCanyon .

Библиотеки, о которых мы говорили до сих пор, были уровнями абстракции базы данных, но давайте также рассмотрим пару плагинов CRUD (создание, чтение, обновление и удаление), которые позволяют легко генерировать код скаффолдинга.

xCRUD — простой, но мощный плагин генератора CRUD, написанный для PHP и MySQL. Он позволяет вам быстро создавать базовый код скаффолдинга и даже полезен для непрограммистов. По своей сути он использует расширение mysqli для работы с различными операциями с базами данных. Но вам не нужно беспокоиться об основных сложностях — вам просто нужно использовать простые в использовании функции, предоставляемые системой xCRUD.

При использовании плагина xCRUD вам просто нужно спроектировать таблицы базы данных, а плагин xCRUD будет обрабатывать все остальное. Всего за несколько строк кода вы получите готовый к использованию пользовательский интерфейс, который позволяет создавать и обновлять записи. Вы также получите представление списка, в котором перечислены все записи.

Давайте кратко рассмотрим код, который вы должны написать для генерации методов CRUD для таблицы пользователей.

1
2
3
4
<?php
$xCRUD = Xcrud::get_instance();
$xCRUD->table(‘users’);
echo $xCRUD->render();

Разве это не аккуратно? Всего за несколько строк кода вы сгенерировали код скаффолдинга для таблицы пользователей. И вы можете сделать гораздо больше с этим плагином, поскольку он поставляется со многими функциями. Вы можете посетить официальную страницу плагина на CodeCanyon для получения дополнительной информации .

Наконец, давайте посмотрим на плагин PDO CRUD, который также является плагином генератора CRUD, который поддерживает базы данных MySQL, Postgres и SQLite . С помощью всего лишь нескольких строк кода этот плагин способен генерировать красивый и привлекательный пользовательский интерфейс, который позволяет вам легко выполнять повседневные операции с вашей базой данных.

Как следует из названия, это не просто базовый генератор CRUD, а скорее полный шаблон для приложения базы данных. Давайте кратко рассмотрим несколько мощных функций этого плагина:

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

А вот краткий обзор кода, который вы использовали бы для создания базового интерфейса CRUD:

1
2
3
<?php
$pdoCrudObject = new PDOcrud();
echo $pdoCrudObject->dbTable(‘users’)->render();

Это оно! Посетите официальную страницу этого плагина CRUD на CodeCanyon, чтобы понять, насколько мощный этот плагин.

В этой статье мы обсудили пару популярных уровней абстракции базы данных и плагины CRUD-генератора в PHP. Изначально мы обсуждали бесплатные и популярные расширения в сообществе PHP. Позже мы рассмотрели несколько популярных и действительно полезных расширений в CodeCanyon.

Я надеюсь, что эта статья поможет вам выбрать уровень абстракции базы данных, который наилучшим образом соответствует требованиям вашего приложения.

Не стесняйтесь поделиться своим опытом и мыслями об уровнях абстракции базы данных и системах CRUD ниже. Мы хотели бы услышать от вас!