Co je Doctrine 2 a jak funguje?

Obsah
Doctrine 2 je moderní knihovna pro PHP, která slouží jako tzv. ORM – Object-Relational Mapper. To znamená, že propojuje svět relačních databází a objektově orientovaného programování. Díky ní můžete pracovat s databázovými záznamy jako s běžnými PHP objekty, bez nutnosti psát SQL dotazy.
1. Jaký je princip ORM?
Místo toho, abyste ručně tvořili dotazy k databázi, vytvoříte si PHP třídy (tzv. entity), které reprezentují databázové tabulky. Doctrine se pak postará o zbytek – ukládání, čtení i mazání dat.
Příklad entity:
use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="articles") */ class Article { /** @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue */ private $id; /** @ORM\Column(type="string") */ private $title; /** @ORM\Column(type="text") */ private $content; // gettery a settery... }
Výše uvedená třída reprezentuje tabulku articles
a sloupce id
, title
a content
. Doctrine podle této definice automaticky vytvoří odpovídající SQL schéma a operace.
2. Z čeho se Doctrine skládá?
- Entity – PHP třídy reprezentující tabulky
- EntityManager – hlavní nástroj pro práci s daty (vkládání, načítání, mazání)
- Metadata – informace o tom, jak entity mapovat
- DQL – Doctrine Query Language, jazyk podobný SQL, ale nad entitami
3. Ukládání dat do databáze
Typický způsob práce v Doctrine vypadá takto:
$article = new Article(); $article->setTitle("Nadpis článku"); $article->setContent("Obsah článku"); $entityManager->persist($article); // připraví ke vložení $entityManager->flush(); // provede zápis do DB
Doctrine sama zjistí změny a vytvoří odpovídající SQL dotaz, například INSERT INTO articles ...
.
4. Výhody Doctrine 2
- Práce s databází objektově a přehledně
- Snadné propojení mezi tabulkami (vztahy OneToOne, ManyToMany, ...)
- Bezpečnější než ruční SQL
- Podpora migrací a cache
5. Nevýhody a na co si dát pozor
- U složitých dotazů může být méně výkonná než ručně psané SQL
- Náročnější ladění v komplexních aplikacích
- Vysoká spotřeba paměti při práci s velkými objemy dat (ORM drží objekty v paměti)
Závěr
Doctrine 2 je robustní nástroj, který vývojářům výrazně usnadňuje práci s databází. Pokud vyvíjíte aplikaci v PHP (například v Symfony), určitě stojí za to se Doctrine naučit. Pomůže vám psát čistší, udržovatelnější a bezpečnější kód – a navíc vás zbaví nutnosti psát velké množství repetitivního SQL.
Poslední aktualizace článku proběhla 7.4.2025.
OBJEDNAT SEO OPTIMALIZACI