Doctrine je vyspělá PHP knihovna pro objektovou práci s databází. Hlavním smyslem a cílem Doctrine je popsat databázové schéma pomocí datových entit a s daty manipulovat plně objektovým způsobem.
Tomuto paradigmatu se říká ORM (Object–relational mapping), což je návrhový vzor pro převod (obalení) dat uložených v relační databázi na objekt, který lze použít v objektově orientovaném jazyce. Pro pochopení a použití Doctrine tedy musíte umět aspoň základy Objektově orientovaného programování.
Důvodů je opravdu hodně:
Dlouhodobý názor autora tohoto článku (Jan Barášek) je, že Doctrine je nejlepší způsob, jak pracovat s databází v jazyce PHP. Zkrátka nemá konkurenci.
Ještě než začnete používat Doctrine naplno, je potřeba připravit vhodné prostředí. Pokud s PHP teprve začínáte, nebo nemáte seniorní znalosti, nejlepší volbou bude instalace Nette Framework s rozšiřujícím balíkem Baraja Doctrine, který automaticky integruje plnou podporu. Nejprve si stáhněte balík přes Composer, poté nastavte DI Extension a Doctrine začne fungovat automaticky.
Aby Doctrine fungovala korektně, tak je potřeba připravit prázdnou databázi (Doctrine umí pracovat i s existujícím projektem, ale pro první kroky to je nevhodné, protože hrozí přepsání existujících dat) a nakonfigurovat připojení. Protože Doctrine není pouze databázová knihovna, ale poskytuje pokročilý databázový framework, tak je potřeba vyřešit i další konfiguraci. Většina nastavení se v uvedeném balíčku pro Nette propíše automaticky, nicméně v minimální konfiguraci váš server musí podporovat rozšíření APCu Cache
nebo SQLite3
.
Pokud se vše povedlo nakonfigurovat správně, tak v Nette vznikne nová DI služba Baraja\Doctrine\EntityManager
, kterou můžete injectnout do Presenteru:
<?phpnamespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
Pokud se vám podaří injectnout základní službu EntityManageru, můžete se pustit do studia a práci s Doctrine.
Následující kapitoly jsou kombinací referenční příručky technologie Doctrine, dlouhodobých zkušeností, návrhových vzorů a hotových řešení. Projdeme společně všechny základní prvky Doctrine od definice vlastní entity, přes generování fyzického databázového schématu, až po spolupráci s verzovacím nástrojem a produkční nasazení.
Doctrine používám velmi dlouho a řešil jsem v ní tisíce případů. Ukážeme si tipy a triky, jak pomocí Doctrine optimalizovat rychlost databáze a jak databázi vhodně navrhnout. Doctrine je také možné použít pro již stávající projekt (pokud splníte určité podmínky) a ukážeme si, jak na to.
Tato série článků vznikla jako pomocné materiály pro studenty mého školení a konzultací. Pokud potřebujete probrat nebo podrobněji vysvětlit určitá témata, můžete mi napsat na e-mail jan@barasek.com. Protože jde o relativně náročnou technologii, bude na všechny dotazy hleděno jako na placenou konzultaci.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs