Database
 sql >> база данни >  >> RDS >> Database

Сравняване на слоеве за абстракция на база данни на PHP и CRUD плъгини

В тази статия ще разгледаме различни слоеве за абстракция на база данни за PHP. Ще разгледаме и няколко PHP плъгини за база данни CRUD, които биха могли да улеснят живота ви, когато взаимодействате с MySQL база данни.

Какво е абстракционен слой на база данни?

Както подсказва името, абстракционният слой на базата данни е слой, който се намира между вашето приложение и основната база данни. Ще използвате слой за абстракция на база данни, за да взаимодействате с вашата база данни. Предимството на слоя за абстракция на базата данни е, че можете да превключвате базовия гръб на базата данни, без да се притеснявате за промени в кода във вашето приложение. Слоят за абстракция на база данни също опростява кода на базата данни и улеснява свързването и актуализирането на базата данни.

Нека да разгледаме пример, за да разберем това. Да приемем, че сте избрали MySQL като бек-енд на база данни в началната фаза на разработката на вашето приложение. Не използвате никакъв абстракционен слой на базата данни в приложението си, така че в крайна сметка ще пишете код, специфичен за задния край на MySQL, когато извършвате операции с база данни.

Какво ще стане, ако по някаква причина трябва да промените задния край на вашата база данни от MySQL на Oracle? Този превключвател няма да е лесен. Първото нещо, което трябва да направите, е да прегледате всеки бит от специфичния за MySQL код във вашето приложение. Ще трябва да преминете през всеки ред код, който взаимодейства с задната част на базата данни на MySQL, и да го замените с еквивалентен код за новата база данни.

От друга страна, ако сте използвали слой за абстракция на база данни, за да взаимодействате с задния край на базата данни, превключването към друг ODBC-съвместим бекенд на базата данни се извършва с миг на око. Просто трябва да промените настройките за връзка, за да отразите новия гръб на базата данни. И така, както можете да видите, абстракционният слой на базата данни крие сложността, като ви позволява да говорите с различни бек-ендове на базата данни.

Разгледайте следната диаграма, за да разберете какво сме обсъждали досега.

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

Опции на слоя за абстракция на базата данни

След това ще разгледаме няколко опции, които бихте могли да използвате в ежедневната си разработка на приложения. Нека да разгледаме набързо опциите, които ще обсъдим в останалата част от статията.

  • ЗНП
  • Доктрина DBAL
  • ADOdb
  • PDOModel:абстракция на база данни и помощен PHP клас
  • Система за управление на данни xCRUD
  • PDO Crud:Разширено PHP CRUD приложение

Първите три опции — PDO, Doctrine DBAL и ADOdb — са популярни опции с отворен код и безплатни за използване. Другите три са търговски опции, достъпни от CodeCanyon, така че ще трябва да платите за тях, ако искате да ги използвате. От друга страна, те предоставят много функции, които ви позволяват бързо да настроите основно скеле във вашите приложения. Освен това те са на разумна цена в сравнение с това, което предоставят, както ще видим по-късно в тази статия.

Бърз преглед на популярни и безплатни опции

В този раздел ще разгледаме няколко популярни и безплатни опции, които можете да използвате като слой за абстракция на база данни във вашите PHP приложения.

PDO

Библиотеката PDO (PHP data objects) е разширение на PHP, което предоставя интерфейс за работа с различни бек-ендове на база данни. За да използвате PDO, ще трябва да инсталирате специфични за базата данни PDO драйвери, които искате да използвате във вашите приложения.

Така че, ако искате да работите с базата данни MySQL, използвайки разширението PDO, ще трябва да се уверите, че сте активирали разширението php_pdo, което е основно разширение на PDO, и разширението pdo_mysql, което ви позволява да говорите с MySQL сървър, използващ слоя за абстракция на база данни PDO.

Разбира се, ако искате да работите с база данни, различна от MySQL, ще трябва да инсталирате разширението за pdo за тази база данни. За повече информация относно поддържаните драйвери на база данни в PDO, можете да посетите страницата с PDO драйвери в PDF ръководството, което включва всичко, което трябва да знаете.

Доктрина DBAL

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

Списъкът на поддържаните доставчици на бази данни от Doctrine DBAL е:

  • MySQL
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • Ръмжи

Doctrine DBAL е разработена в рамките на проекта Doctrine, който също така предоставя ORM (обектно-релационен картограф), който се намира в горната част на Doctrine DBAL. Doctrine ORM е инструмент, който ви позволява да пишете заявки към база данни по обектно-ориентиран начин. Всъщност самата ORM е обширна тема, така че няма да навлизаме в подробности тук, но ще напиша статия за ORM в бъдеще.

ADOdb

И накрая, ADOdb е много популярна библиотека с класове и много стар играч на тази територия. Това е външна библиотека, която първо ще трябва да изтеглите и конфигурирате с вашата настройка, ако искате да я използвате. ADOdb също така поддържа широк спектър от бази данни, от които да избирате като бекенд на вашата база данни.

В допълнение към предоставянето на компоненти за запитване и актуализиране на базата данни, той предоставя и обектно-ориентирана библиотека Active Record, която работи като ORM по същия начин, който обсъдихме по-рано в раздела Doctrine ORM.

Освен това ще трябва да инсталирате съответните драйвери за задните части на базата данни за тази библиотека,  по същия начин, както бихте направили за разширението PDO. Например, ако искате да работите с MySQL база данни, ще трябва да инсталирате драйвера на mysqli в PHP.

Така че това беше бърз поглед към няколко полезни безплатни опции. В следващия раздел ще разгледаме няколко популярни търговски опции, които предоставят много повече функции, отколкото просто абстракция на базата данни.

Най-добрите PHP скриптове за абстракция на база данни за закупуване

В този раздел ще обсъдим няколко разширени опции, които можете да изберете за библиотека за абстракция на база данни. Всъщност опциите, които сме избрали, няма да работят просто като библиотека за абстракция на база данни – те предоставят много повече от това.

PDOModel:абстракция на база данни и помощен PHP клас

Библиотеката PDOModel е абстракция на база данни и помощен PHP клас, който е изграден върху разширението на PDO. Това е отлична обвивка, която ви позволява да извършвате операции за вмъкване, актуализиране, изтриване и избор, без да пишете SQL заявки. По този начин осигурява простота и четливост. Всъщност той предоставя функции за обвивка, които ви позволяват да извършвате сложни операции с помощта на прости функции, без да пишете реални SQL заявки.

В момента поддържа MySQL, Postgres, SQlite и SQL Server back-ends база данни. Той поддържа транзакции и пакетни операции, което е основна функция, ако искате да импортирате база данни от външен източник. Най-важното е, че ви позволява да експортирате данни във формати като CSV, Excel, PDF, XML и други.

Нека да разгледаме набързо следния код, който демонстрира колко лесно е да използвате помощника PDOModel.

<?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:Система за управление на данни

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

Докато използвате плъгина xCRUD, вие просто трябва да проектирате таблиците на базата данни, а плъгинът xCRUD ще се справи с останалото. Само с няколко реда код ще имате готов за използване потребителски интерфейс, който ви позволява да създавате и актуализирате записи. Ще получите и списъчен изглед, който изброява всички записи.

Нека да разгледаме набързо кода, който трябва да напишете, за да генерирате CRUD методи за таблицата с потребители.

<?php
$xCRUD = Xcrud::get_instance();
$xCRUD->table('users');
echo $xCRUD->render();

Това не е ли кокетно? Само с няколко реда код вие генерирахте кода на скелето за таблицата с потребители. И можете да направите много повече с този плъгин, тъй като идва с много функции. Можете да посетите официалната страница с приставки в CodeCanyon за допълнителна информация.

PDO CRUD:Разширено PHP CRUD приложение

И накрая, нека разгледаме PDO CRUD плъгин, който също е плъгин за CRUD генератор, който поддържа MySQL, Postgres и SQLite back-ends база данни. Само с няколко реда код този плъгин е в състояние да генерира красив и привлекателен потребителски интерфейс, който ви позволява да извършвате ежедневни операции с вашата база данни без усилие.

Както подсказва името, това не е просто основен CRUD генератор, а по-скоро е пълен шаблон за приложение за база данни. Нека да разгледаме набързо няколко от мощните функции на този плъгин:

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

И ето един бърз поглед върху кода, който бихте използвали за генериране на основен CRUD интерфейс:

<?php
$pdoCrudObject = new PDOcrud();
echo $pdoCrudObject->dbTable('users')->render();

Това е! Посетете официалната страница на този CRUD плъгин в CodeCanyon, за да разберете колко мощен е този плъгин.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранената процедура за получаване на настройките на екземпляра

  2. Как да изчислим степента на задържане в SQL?

  3. Какво представляват приложенията в реално време?

  4. MMO игри и дизайн на бази данни

  5. Проектиране на база данни за система за набиране на персонал