---
id: 2
title: "Doctrine 2 - Pokročilé použití"
form_link: "https://goo.gl/forms/WXCTPpyxfAJViC1H2"
image: "/assets/images/logos/doctrine.png"
start: '2018-11-26 10:00:00'
end: '2018-11-26 18:00:00'
deadline: '2018-11-20 23:59:59'
user: 11
duration: "8 hodin"
price: 6999
place_id: 3
capacity: "9 lidí"
perex: "Jak efektivně propojit entity? Jak dělat s DQL složitější dotazy do databáze? A jak Doctrine dokáže optimalizovat množství dotazů do databáze a naopak, kdy ji musíme pomoci sami? To všem vám ukážu na mém školení."
---

Zjistíte, jak správně rozpoznat vztahy mezi <a href="http://www.doctrine-project.org/">Doctrine 2 ORM</a> entitami a jak je efektivně propojit mezi sebou. Představíme si jazyk DQL a ukážeme si, jak se s jeho pomocí dají připravit složitější dotazy do databáze. Vysvětlíme si, jak Doctrine dokáže optimalizovat množství dotazů do databáze a naopak, kdy ji musíme pomoci sami. Ukážeme si co a jak, ale také kdy ukládat do cache. Představíme si Doctrine Events, Filters a také mocnou Second Level Cache.

Jako bonus zjistíte, na jaké problémy můžete narazit při nesprávném cachování hlavně multijazyčných aplikací + se rád podělím o pár vychytávek, na které jsem narazil za 4 roky při skoro každodenní práci s Doctrine.

### Co si ze školení odneseš?

- Entity a jejich vztahy
- DQL a jeho reálné použití
- Optimalizace počtu, ale i samotných dotazů do databáze
- Doctrine Events, Filters a Second Level Cache - aneb to co se Vám určitě hodí
- Bonus: jak "ne"cachovat multijazyčné aplikace + vychytávky pro ulehčení práce s Doctrine

### Co je potřeba před školením

- mít nainstalované PHP 7.1 a vyšší + relační databázi (MySQL, PostgreSQL, atd.)
- mít nainstalované nějaké IDE např. [PHPStorm](https://www.jetbrains.com/phpstorm/download/)
- zkušenosti s Nette frameworkem výhodou, ale ne nutností
- zkušenosti s Doctrine 2 výhodou, ale ne nutností

Použité technologie: Doctrine 2, Nette, MySQL/PostgreSQL (podle Vás)
