Komentáře k článku
Doctrine 2: úvod do systému

Doctrine 2 je nový ORM framework pro jazyk PHP. V porovnání s již existujícími systémy pro mapování objektů na relační databázi přináší zajímavý posun a má velkou šanci stát se v budoucnu převládajícím ORM pro aplikace psané v jazyce PHP. V několika dílech tohoto seriálu si Doctrine 2 postupně představíme.
Chybný odkaz
Hned první odkaz v článku není zrovna ideální: file:///C:/DOCUME%7E1/MARTIN%7E1.MAL/LOCALS%7E1/Temp/_tc/doctrine-01-uvod.html
Re: Chybný odkaz
Opraveno, díky za upozornění, omlouvám se.
Perfekt
Čtivý a jednoduše pochopitelný článek, díky! Jen tak dál
ORM Designer
Vsem kdo pracuji s Doctrine2 nebo Doctrine bych doporucil nastroj ORM Designer.
Namisto oddelenho vytvareni modelu a rucniho psani vsech definic umoznuje ORMD cely objektovy model navrhnout visualne a pote jednoduse vyexportovat. Narozdil od MySQL workbench nebo DBDesigneru ma ale podporu vsech vlastnosti (a v pripade Doctrine i vsech behaviours) pro dany ORM framework.
Re: ORM Designer
Toto by malo vediet aj acceleo+emf, ale chcelo by to k tomu dobry tutorial. Nechce sa niekomu napisat?
Dalsia vec – ako zlozite je integrovat nette s doctrine2?
Re: ORM Designer
Dalsia vec – ako zlozite je integrovat nette s doctrine2?
Je to velice jednoduché. Vzhledem k tomu, že Doctrine2 nevyžaduje žádné dědění nějaké základní třídy, tak můžeme vzít naše stávající entity z modelu (poděděné od NetteObject), oanotovat je a máme hotovo. Od této chvíle s nimi můžeme pracovat přes EntityManager.
Re: ORM Designer
Nette není potřeba s Doctrine nijak integrovat, protože Nette nepředpisuje žádnou podobu modelů.
Stačí si tedy dát do config.ini přihlašovací údaje k databázi, do bootstrapu nějaké to základní nastavení (předvedené v článku), založit si vlastní Entity (nejlépe asi poděděnou od NetteObject) a zvesela začít psát entitní třídy a libovolně je v presenterech používat.
Re: ORM Designer
OK, pozrem to. Mam v plane prerobit nejake stare stranky a rozhodujem sa medzi yii a nette, pricom by som rad pouzil prave doctrine2.
Proxy a metadata
Škoda, že v článku není víc popsaná část toho posledního výstřižku kódu, konkrétně netuším, co si představit pod tou proxy a metadata driverem. Určitě to půjde dohledat v dokumentaci, ale v článku by to mělo být více vysvětleno.
Re: Proxy a metadata
Počkej na další díly, jistě to vysvětlí.
Proxy se používají při práci s asociovanými entitami a naplno se využívají při jejich (lazy) načítání.
Metadata driver poskytuje entity manageru informace o entitách. Základní metadata drivery jsou tři: pro práci s Docblock anotacemi, pro práci s XML a pro práci s YAML.
Kešování metadat entit
Jen doplním, že se zde nekonfiguruje EntityManager s aktivním kešováním metadat entit a DQL dotazů. V dokumentaci se silně doporučuje toto nějakým způsobem kešovat.
Do not use Doctrine without a metadata and query cache! Doctrine is highly optimized for working with caches. The main parts in Doctrine that are optimized for caching are the metadata mapping information with the metadata cache and the DQL to SQL conversions with the query cache. These 2 caches require only an absolute minimum of memory yet they heavily improve the runtime performance of Doctrine. The recommended cache driver to use with Doctrine is APC. APC provides you with an opcode-cache (which is highly recommended anyway) and a very fast in-memory cache storage that you can use for the metadata and query caches as seen in the previous code snippet.
http://www.doctrine-project.org/projects/orm/2.0/docs/reference/configuration/en#bootstrapping:obtaining-an-entitymanager
Nejjednodušší na použití je DoctrineCommonCacheArrayCache, která se aktivuje takto: