sql >> Databáze >  >> RDS >> Database

Porovnání vrstev abstrakce databáze PHP a zásuvných modulů CRUD

V tomto článku se podíváme na různé vrstvy abstrakce databáze pro PHP. Podíváme se také na několik pluginů databáze PHP CRUD, které by vám mohly usnadnit život při interakci s databází MySQL.

Co je abstrakční vrstva databáze?

Jak název napovídá, abstrakční vrstva databáze je vrstva, která se nachází mezi vaší aplikací a podkladovou databází. K interakci s databází použijete vrstvu abstrakce databáze. Výhoda vrstvy abstrakce databáze spočívá v tom, že můžete přepínat svůj základní databázový back-end, aniž byste se museli starat o změny kódu ve vaší aplikaci. Vrstva abstrakce databáze také zjednodušuje kód databáze a usnadňuje připojení a aktualizaci databáze.

Abychom to pochopili, podívejme se na příklad. Řekněme, že jste v počáteční fázi vývoje vaší aplikace zvolili MySQL jako back-end databáze. Ve své aplikaci nepoužíváte žádnou abstrakční vrstvu databáze, takže při provádění databázových operací budete psát kód specifický pro back-end MySQL.

Co když z nějakého důvodu potřebujete změnit back-end databáze z MySQL na Oracle? Tento přechod nebude snadný. První věc, kterou budete muset udělat, je zkontrolovat každý kousek kódu specifického pro MySQL ve vaší aplikaci. Budete muset projít každý řádek kódu, který interaguje s back-endem databáze MySQL, a nahradit jej ekvivalentním kódem pro novou databázi.

Na druhou stranu, pokud jste pro interakci s databázovým back-endem použili databázovou abstrakční vrstvu, přechod na jiný databázový back-end kompatibilní s ODBC se provede mrknutím oka. Stačí změnit nastavení připojení tak, aby odráželo nový back-end databáze. Jak tedy můžete vidět, vrstva abstrakce databáze skrývá složitost tím, že vám umožňuje komunikovat s různými back-endy databáze.

Podívejte se na následující diagram, abyste pochopili, o čem jsme dosud diskutovali.

Jak můžete vidět, vrstva abstrakce databáze je umístěna mezi aplikací a skutečnou databází, takže aplikace nepotřebuje znát podrobnosti o tom, jak základní databáze funguje.

Možnosti vrstvy abstrakce databáze

Dále se podíváme na několik možností, které byste mohli využít při každodenním vývoji aplikací. Pojďme se rychle podívat na možnosti, které budeme diskutovat ve zbytku článku.

  • CHOP
  • Doktrína DBAL
  • ADOdb
  • PDOModel:abstrakce databáze a pomocná třída PHP
  • xCRUD Data Management System
  • PDO Crud:Pokročilá aplikace PHP CRUD

První tři možnosti – PDO, Doctrine DBAL a ADOdb – jsou oblíbené open source možnosti a jsou zdarma k použití. Další tři jsou komerční možnosti dostupné od CodeCanyon, takže pokud je budete chtít používat, budete za ně muset zaplatit. Na druhou stranu tyto poskytují spoustu funkcí, které vám umožní rychle nastavit základní lešení ve vašich aplikacích. Také jsou za rozumnou cenu ve srovnání s tím, co poskytují, jak uvidíme později v tomto článku.

Rychlý pohled na oblíbené a bezplatné možnosti

V této části se podíváme na několik oblíbených a bezplatných možností, které byste mohli použít jako vrstvu abstrakce databáze ve svých aplikacích PHP.

CHOP

Knihovna PDO (PHP data objects) je rozšíření PHP, které poskytuje rozhraní pro práci s různými databázovými back-endy. Abyste mohli používat PDO, budete muset nainstalovat ovladače PDO specifické pro databázi, které chcete používat ve svých aplikacích.

Pokud tedy chcete pracovat s databází MySQL pomocí rozšíření PDO, musíte se ujistit, že jste povolili rozšíření php_pdo, což je základní rozšíření PDO, a rozšíření pdo_mysql, které vám umožňuje hovořit s MySQL server využívající vrstvu abstrakce databáze PDO.

Samozřejmě, pokud chcete pracovat s jinou databází než MySQL, budete muset nainstalovat rozšíření pdo pro tento back-end databáze. Další informace o podporovaných databázových ovladačích v PDO najdete na stránce ovladačů PDO v příručce PDF, která obsahuje vše, co potřebujete vědět.

Doktrína DBAL

Knihovna Doctrine DBAL (database abstraction layer) je další populární databázová abstraktní knihovna, která poskytuje obal kolem PDO. Doctrine DBAL poskytuje snadno použitelné metody API a několik dalších funkcí ve srovnání s použitím samotného rozšíření PDO.

Seznam podporovaných dodavatelů databází podle Doctrine DBAL je:

  • MySQL
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • Krholení

Doctrine DBAL je vyvinuta v rámci projektu Doctrine, který také poskytuje ORM (objektově-relační mapovač), který je umístěn na vrcholu Doctrine DBAL. Doctrine ORM je nástroj, který umožňuje psát databázové dotazy objektově orientovaným způsobem. Ve skutečnosti je samotné ORM široké téma, takže zde nebudeme zabíhat do podrobností, ale v budoucnu napíšu článek o ORM.

ADOdb

A konečně, ADOdb je velmi oblíbená knihovna tříd a velmi starý přehrávač v této oblasti. Je to externí knihovna, kterou si musíte nejprve stáhnout a nakonfigurovat s nastavením, pokud ji budete chtít používat. ADOdb také podporuje širokou škálu databází, ze kterých si můžete vybrat jako back-end databáze.

Kromě toho, že poskytuje komponenty pro dotazování a aktualizaci databáze, poskytuje také objektově orientovanou knihovnu Active Record, která funguje jako ORM stejným způsobem, jakým jsme hovořili dříve v sekci Doctrine ORM.

Také budete muset nainstalovat odpovídající ovladače pro databázové back-endy pro tuto knihovnu, stejným způsobem jako pro rozšíření PDO. Pokud například chcete pracovat s databází MySQL, budete si muset nainstalovat ovladač mysqli v PHP.

To byl rychlý pohled na několik užitečných bezplatných možností. V další části se podíváme na několik populárních komerčních možností, které poskytují mnohem více funkcí než jen abstrakci databáze.

Nejlepší skripty abstrakce databáze PHP k nákupu

V této části probereme několik pokročilých možností, které si můžete vybrat pro knihovnu abstrakce databáze. Ve skutečnosti nebudou možnosti, které jsme vybrali, fungovat pouze jako knihovna abstrakce databáze – poskytují hodně víc než to.

PDOModel:abstrakce databáze a pomocná třída PHP

Knihovna PDOModel je databázová abstrakce a pomocná třída PHP, která je postavena na rozšíření PDO. Je to vynikající obálka, která vám umožňuje provádět operace vkládání, aktualizace, mazání a výběru bez psaní jakýchkoliv SQL dotazů. Poskytuje tak jednoduchost a čitelnost. Ve skutečnosti poskytuje funkce wrapper, které vám umožňují provádět složité operace pomocí jednoduchých funkcí bez psaní skutečných SQL dotazů.

V současné době podporuje databázové back-endy MySQL, Postgres, SQlite a SQL Server. Podporuje transakce a dávkové operace, což je základní funkce, pokud chcete importovat databázi z externího zdroje. Třešničkou navrchu je, že umožňuje exportovat data do formátů jako CSV, Excel, PDF, XML a dalších.

Pojďme se rychle podívat na následující kód, který ukazuje, jak snadné je používat pomocníka 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");

Jak tedy vidíte, provádět databázové operace pomocí pomocné třídy PDOModel je hračka. Pro více informací můžete navštívit oficiální stránku PDOModel na CodeCanyon.

Knihovny, o kterých jsme dosud mluvili, byly vrstvy abstrakce databáze, ale podívejme se také na několik zásuvných modulů CRUD (create, read, update, and delete), které vám umožňují snadno generovat kód lešení.

xCRUD:Systém správy dat

xCRUD je jednoduchý, ale výkonný plugin generátoru CRUD napsaný pro PHP a MySQL. Umožňuje vám vytvořit základní kód lešení během okamžiku a je dokonce užitečný i pro neprogramátory. Ve svém jádru používá rozšíření mysqli k řešení různých databázových operací. Nemusíte si však dělat starosti se základními složitostmi – stačí použít snadno použitelné funkce poskytované systémem xCRUD.

Při používání pluginu xCRUD stačí navrhnout databázové tabulky a plugin xCRUD se postará o zbytek. S několika řádky kódu budete mít uživatelské rozhraní připravené k použití, které vám umožní vytvářet a aktualizovat záznamy. Získáte také zobrazení seznamu, které obsahuje všechny záznamy.

Pojďme se rychle podívat na kód, který musíte napsat, abyste vygenerovali metody CRUD pro tabulku uživatelů.

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

Není to úhledné? Pomocí několika řádků kódu jste vygenerovali kód lešení pro tabulku uživatelů. A s tímto pluginem můžete udělat mnohem víc, protože přichází s mnoha funkcemi. Další informace naleznete na oficiální stránce pluginu na CodeCanyon.

PDO CRUD:Pokročilá aplikace PHP CRUD

Nakonec se podívejme na plugin PDO CRUD, což je také plugin generátoru CRUD, který podporuje back-endy databáze MySQL, Postgres a SQLite. S pouhými několika řádky kódu je tento plugin schopen generovat krásné a přitažlivé uživatelské rozhraní, které vám umožní bez námahy provádět každodenní operace s vaší databází.

Jak název napovídá, nejedná se pouze o základní generátor CRUD, ale spíše o kompletní šablonu pro databázovou aplikaci. Pojďme se rychle podívat na několik výkonných funkcí tohoto pluginu:

  • vložené úpravy
  • nahrání souborů
  • podpora pluginů JavaScript
  • připojit se k operacím
  • vyhledávání, stránkování a export
  • podpora více jazyků
  • a mnoho dalších

A zde je rychlý pohled na kód, který byste použili ke generování základního rozhraní CRUD:

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

A je to! Navštivte oficiální stránku tohoto pluginu CRUD na CodeCanyon, kde se dozvíte, jak výkonný tento plugin je.


  1. Kdy nebo proč použít SET DEFINE OFF v databázi Oracle

  2. Chyba při pokusu o načtení textu chyby ORA-01804

  3. Připojení PHP se nezdařilo:SQLSTATE[HY000] [2002] Připojení odmítnuto

  4. Volání uloženého POSTUPU v Toad