Výhody a nevýhody v používání NDB a Doctrine

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
fary
Člen | 155
+
0
-

Dlouho zvažuju, že bych z NDB přešel na Doktrínu, ale sem tam jsem pochytil různé informace o tom, že ORM není stejně není něco, co vyřeší věe. Rád bych se tedy zeptal těch, kteří znají obě knihovny dobře, jaké výhody či naopak nevyhody z jejich používání plynou. Pokud se vám nechce psát a znali byste nějakou stránku, kde se o tom pojednává, bych bych za odkaz na ni moc rád :-)

hrach
Člen | 1838
+
+3
-

Osobne jsem ORM chtel, ale vic mne bylo sympaticke pojeti ORM od Petra Prochazky. Protoze jsem se na rok zavrel doma a naprogramoval vlastni (nextras\orm), ktere vychazi z jeho konceptu, jen nad NDB a je jine nez Doctrine.

Takze hlavne bych rad zduralnil, ze to neni vubec otazka ORM ano/ne, ale je treba si ty ORM osahat a zkusit si, s cim se ti dobre pracuje, co ti nehazi klacky pod nohy, co se ti proste bude dobre pouzivat. Samozrejme projekt od projektu se to bude lisit, ale ja mam volbu jasnou O:-).

Zax
Člen | 370
+
+1
-

NDB a Doctrine se hlavně nedají moc dobře srovnávat, každý si jde úplně jinou cestou.

V NDB strašně rychle nabušíš co potřebuješ a budeš to mít i efektivní, ale musíš se smířit s tím, že to prostě není tak pěkně objektové a nejspíš budeš mít názvy tabulek a sloupců prolezlé i v šablonách. Je prostě dost low-level, ale ne zas tolik jako čisté PDO, a má pár skvělých vychytávek (select .. where id in(...) + cachování použitých sloupců v cyklech a následné generování efektivních dotazů = brilliant idea!).

Doctrina naopak má tunu abstrakce na všechno, dokonce dotazy se nepíšou v SQL, ale v DQL (místo tabulek se dotazuješ na entity), dají se stáhnout rozšíření, které se ti postarají o věci jako slugy, stromy, překlady, automatické timestampování (createdAt, updatedAt), jedním příkazem do konzole můžeš z entit vygenerovat databázi (a obráceně) atd atd. Je to skvělá (a velká) knihovna, která toho umí hodně, ale její filozofie (a API) nemusí vyhovovat všem – jak píše hrach, je třeba si to osahat.