PHP: Knihovny pro práci s databází

Uvedený výčet řešení není kompletní, článek je postupně doplňován.

Knihovny Doctrine

Doctrine ORM

http://www.doctrine-project.org/projects/orm.html

Object Relational Mapper (ORM) pro PHP postavený na vrstvě Database Abstraction Layer (DBAL).

(Možnost zapisovat SQL dotazy v objektově orientovaném dialektu SQL – Doctrine Query Language (DQL) (inspirováno Hibernates HQL)

Doctrine DBAL

http://www.doctrine-project.org/projects/dbal.html

Datavase Abstraction Layer.

  • database schema introspection,
  • schema management
  • and PDO abstraction

Doctrine Migrations

http://www.doctrine-project.org/projects/migrations.html

Doplňkové funkce postavené na DBAL pro verzování schématu databáze a snadné provádění změn.

Framework Laravel

Query Builder

https://laravel.com/docs/queries

Poskytuje praktické rozhraní pro tvorbu a provádění dotazů na databázi.

Získání všech řádků z tabulky:

$users = DB::table('users')->get();

Získání konkrétního záznamu z tabulky:

$user = DB::table('users')->where('name', 'John')->first();

Eloquent ORM

https://laravel.com/docs/eloquent

Poskytuje implementaci ActiveRecord pro práci s databází. Každá tabulka má odpovídající Model určenou pro práci s tabulkou.

Model umožňuje dotazovat, vkládat a měnit data v databázi.

Příklad Modelu:

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Flight extends Model
{
 //
}

Získání Modelu:

<?php

use AppFlight;

$flights = AppFlight::all();

foreach ($flights as $flight) {
    echo $flight->name;
}

Framework Zend 1

Zend_Db

https://framework.zend.com/manual/1.12/en/zend.db.html

Jednoduché SQL rozhraní pro práci s databází.

Zend_Db_Table

https://framework.zend.com/manual/1.12/en/zend.db.table.html

Implementace vzoru Table Data Gateway.

Poskytuje objektově orientované rozhraní k databázové tabulce. Zahrnuje funkce pro běžné operace s tabulkou.

Dotaz volaný nad třídou vrací sadu objektů Zend_Db_Table_Row.

Příklad třídy:

class Bugs extends Zend_Db_Table_Abstract
{
 protected $_name = 'bugs';
}

Zend_Db_Table_Row

https://framework.zend.com/manual/1.12/en/zend.db.table.row.html

Implementace vzoru Row Data Gateway.

Každá třída obsahující vlastní řádek z tabulky.

 


Slovník

Object Relational Mapper (ORM)

Programovací technika která zajišťuje automatickou konverzi dat mezi relační databází a objektově orientovaným programovacím jazykem.

Návrhové vzory pro práci s ORM:

  • Table Data Gateway
  • Row Data Gateway
  • Active Record
  • Data Mapper

Active Record

Objekt, který obaluje řádek v databázové tabulce, zapouzdřuje přístup k databázi, a přidává doménovou logiku.

Více o Active Record »

Table Data Gateway

Návrhový vzor pro práci s datovými zdroji.

Funguje jako brána, která zapouzdřuje databázové operace prováděné nad jednou databázovou tabulkou.

Každá tabulka je v aplikaci reprezentována samostatnou třídou, která obstarává CRUD operace s jednotlivými řádky tabulky.

Jedna instance třídy obsluhuje všechny řádky v tabulce.

Row Data Gateway

Architektonický návrhový vzor pro práci s datovými zdroji.

Funguje jako brána, která zapouzdřuje databázové CRUD operace prováděné nad jedním řádkem tabulky.

Jedna instance třídy obsahuje jeden řádek z tabulky.

Každý atribut třídy odpovídá sloupci v tabulce.
Atributy jsou veřejné (přistupuje se k nim přímo, bez nutnosti používat gettery a settery).

Data Mapper

Návrhový vzor pro práci s datovými zdroji.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *