Jaké ORM pod php verzi 5.2.14

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

Zdravím,

mám takový menší dilema, musím vytvořit takový menší systém pro jednoho známého, bohužel začal jednat dříve, než se mě vůbec zeptal a zakoupil hosting, kde je php verze 5.2.14, no co se dá dělat musel jsem ustoupit na Nette pro 5.2, ale ted mám trochu problém s tím, jakou DAO vrstvu zvolit,
Doctrina nepřichází v úvahu, 2.0 verze je pro 5.3.+ a 1.2 pro min. 5.2.3, tak jsem zkusil dohledat ormion, ten už je bohužel mimo hru, NOTORM od pana Vrány se mi nezdá jako moc dobré řešení a kdybych použil dibi, tak se zas o kus vrátím. Nemá někdo zkušenosti s nějakým jiným ORM?

díky

srigi
Nette Blogger | 558
+
0
-

Mne sa velmi paci ActiveRecord vrstva v nami pouzivanom frameworku Yii. Mozno s trochou namahy je mozne tu vrstvu izolovat a pouzit samostatne.

newPOPE
Člen | 648
+
0
-

Mne sa pred casom nic nezdalo, tak som si napisal kus kodu nad Dibi.

Styl zapisu:

<?php
$testR = new UserRow();
$user = $testR->get(2)->fetch();

var_dump($user);
var_dump($user->document);
var_dump($user->document[0]->category);

//still we have power of DibiFluent with this code
var_dump( $user->document()->leftJoin(...) ... ->fetchAll() );
//or we can clear SELECT clause
var_dump( $user->document(TRUE)->select("name")->as("myName") ... ->fetchAll() );
?>

Nechcelo sa mi dokola pisat select from, a kedze to bolo do skoly tak tam o vykon a opt. neslo. V podstate to len pripravuje DibiFluent, a automat. taha aj relacie…

PS: kedze to nema dokumentaciu tak ti asi bude na NIC :-D

viac kodu http://projects.stipo.sk/kviki/

Editoval newPOPE (29. 10. 2010 15:26)

Ondřej Brejla
Člen | 746
+
0
-

Padik napsal(a):

Zdravím,

…1.2 pro min. 5.2.3…

5.2.14 je snad větší než 5.2.3, ne? :-)

Solution
Člen | 50
+
0
-

Ondřej Brejla: hra, sada, zápas :-D
To by se mohlo stát každému, ale přesto díky za projevenou snahou všem.

Ondřej Mirtes
Člen | 1536
+
0
-

Padik: Nemazlil bych se s tím a vyjednal si na hostingu PHP 5.3 anebo změnu hostingu. Vždyť jde o pár korun a to se v ceně vývoje webu ztratí. Zkus to klientovi vysvětlit tak, že s PHP 5.2 by ti ten vývoj trval dýl a prodražil by se. S PHP 5.3 máš Doctrine 2 a to budeš mít za chvíli :))

Ped
Člen | 64
+
0
-

Ja bych rekl ze do urciteho stupne velikosti projektu (dostatecne maleho) je Doctrine1 produktivnejsi nez Doctrine2 co se tyce casu vyvoje. :)
(uznam dalsi hanu na Doc1 jako ze je to pomale, zere to moc RAM, vsechno je tam vic zadratovane a hur se to ohyba, atd… ale proste dokud mas maly projekt kteremu sedi „Active Record“ styl, tak s Doc1 musis toho natukat tak o 10% min nez s Doc2)

VeN
Člen | 46
+
0
-

(uznam dalsi hanu na Doc1 jako ze je to pomale, zere to moc RAM, vsechno je tam vic zadratovane a hur se to ohyba, atd… ale proste dokud mas maly projekt kteremu sedi „Active Record“ styl, tak s Doc1 musis toho natukat tak o 10% min nez s Doc2)

Tedy já tu nechci vyvolávat flame a zavádět diskuzi někam úplně jinam, nicméně si dovolím podotknout, že je třeba brát v potaz to, že s projektem nepracujeme pouze do odevzdání zákazníkovi, ale že je velká pravděpodobnost, že s ním budeme pracovat i v budoucnu. Z tohoto důvodu mi nepřijde rozumné obětovat rozšiřitelnost/přívětivost/lehkost kvůli tomu, abych místo 1100 řádků napsal řádků 1000.
Nicméně pokud bychom požadovali verzování, vícejazyčnost a podobně (což pak rozhodně není 10% kódu), tak jsme někde úplně jinde. Tyto rozšíření pro Doctrine 2 AFAIK zatím pořádně neexistují. Zde bych po Doctrine 1.2 asi sáhl.
U malých projektů bych napřed sahal po nějaké databázové abstraktní vrstvě (např. Doctrine DBAL) a psal dotazy ručně.

Ped
Člen | 64
+
0
-

1000 radku se obvykle udrzuje lip nez 1100.

Ja delam na Doc1 vetsi projekt, a jsem zatim maximalne spokojenej, obcas si to musim trochu opravit/vylepsit, ale ActiveRecord styl mi zatim zadne problemy nenadelal, usetrilo mi to spoustu prace (treba generovani DB migraci mezi verzemi) a vykonove to staci na to co potrebuji (budu mit online vzdy jen par uzivatelu, takze to nemusim skalovat na stovky a vic, to bych se bal i s Doc2). Ale Doc2 je taky velmi hezky kus kodu a ma proti Doc1 spoustu vyhod, resp. je proste hodne jiny. Ale nerek bych ze Doc2 je automaticky lepsi, porad verim ze jsou ulohy kde Doc1 sedne lip a ulehci praci vice.. jenom ty HW naroky jsou ponekud zrudne, ale to ani PHP+Nette+Doc2 neni zadna vyhra.

Jenom mne zaujalo, proc pro maly projekt nepouzit Active record styl? Podle mne prave u tech nejmensich projektu (mineno rozsahem zdrojaku a naroky na vykon aplikace) je nejnizsi riziko ze clovek narazi na limity ActiveRecord pristupu, a naopak musi psat minimum kodu aby mohl pracovat s datami OOP stylem pres tridu a nemusel se vubec starat o DB. Prave naopak pro projekty kde jde o vykon nebo je vnitrni model znacne komplexny bych se ActiveRecord vyhnul a sel bud do Doc2 nebo Doc2 + pristup pres DBAL k optimalizovanym vlastnim DB strukturam .. je to vic prace, ale umozni to vetsi kreativitu a lepsi vykon)

edit: mne drobny flame a diskuze nevadi, ne ze bych mnel tolik volneho casu, ale vzhledem k tomu ze si v tehle otazce sam nejsem jisty a muj nazor vychazi spis z pocitu nez z nejakych velkych zkusenosti/vedomosti, tak si rad vyslechnu jine nazory („flamovitost“ mi nevadi, jsem zvykly za ty leta na internetu :) )

Editoval Ped (2. 11. 2010 10:20)