Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Doctrine 2: úvod do systému

Robert1234
Robert1234 (neregistrovaný) ---.miramo.cz
21. 7. 2010 0:40 Nový

Chybný odkaz

celé vlákno

Hned první odkaz v článku není zrovna ideální: file:///C:/DO­CUME%7E1/MARTIN%7E1­.MAL/LOCALS%7E1/Tem­p/_tc/doctrine-01-uvod.html

Martin Malý aura:93
21. 7. 2010 7:33 Nový

Re: Chybný odkaz

celé vlákno

Opraveno, díky za upozornění, omlouvám se.

Nox
Nox (neregistrovaný) ---.cust.nbox.cz
21. 7. 2010 8:44 Nový

Perfekt

celé vlákno

Čtivý a jednoduše pochopitelný článek, díky! Jen tak dál

Ludek Vodicka
Ludek Vodicka (neregistrovaný) ---.bm.gin.cz
21. 7. 2010 8:50 Nový

ORM Designer

celé vlákno

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.

andrej
andrej (neregistrovaný) ---.chello.sk
21. 7. 2010 17:16 Nový

Re: ORM Designer

celé vlákno

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?

Václav Novotný
21. 7. 2010 17:36 Nový

Re: ORM Designer

celé vlákno

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 Nette\Object), oanotovat je a máme hotovo. Od této chvíle s nimi můžeme pracovat přes EntityManager.

Ondřej Mirtes aura:39
21. 7. 2010 20:09 Nový

Re: ORM Designer

celé vlákno

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 Nette\Object) a zvesela začít psát entitní třídy a libovolně je v presenterech používat.

andrej
andrej (neregistrovaný) ---.chello.sk
21. 7. 2010 20:49 Nový

Re: ORM Designer

celé vlákno

OK, pozrem to. Mam v plane prerobit nejake stare stranky a rozhodujem sa medzi yii a nette, pricom by som rad pouzil prave doctrine2.

blizzy
blizzy (neregistrovaný) ---.cust.nbox.cz
23. 7. 2010 13:56 Nový

Proxy a metadata

celé vlákno

Š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.

Václav Novotný
23. 7. 2010 14:13 Nový

Re: Proxy a metadata

celé vlákno

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.

Václav Novotný
26. 7. 2010 16:40 Nový

Kešování metadat entit

celé vlákno

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 \Doctrine\Com­mon\Cache\Arra­yCache, která se aktivuje takto:

$cache = new \Doctrine\Common\Cache\ArrayCache();
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
Zasílat nově přidané příspěvky e-mailem