Znalazłem ciekawy post na blogu CodeUtopia dokładnie tutaj. Utwierdza mnie on w przekonaniu, że Doctrine jest lepsze od Propela. Jani Hartikainen na początku porównuje konfiguracje Propela i Doctrine. Doctrine tutaj wygrywa, gdyż jego konfiguracja wymaga napisania jednej albo dwóch linijek kodu, a Propela mnóstwo “Propel needs tons of configuration – Doctrine barely a line or two of PHP code”. Dodaje, że dzięki Doctrine można prosto utworzyć model z bazy danych – potrzebujemy tylko skryptu do połączenia z bazą danych, odwołania Doctrine::generateModelsFromDb i wszystko gotowe!
W Propelu SELECTy wykonujemy z użyciem klasy Criteria:
$c = new Criteria(); $c->add(ExamplePeer::ID, 20); //SELECT all "Example" models which have 20 as their ID and join all foreign tables. $items = ExamplePeer::doSelectJoinFoobar($c);
W Doctrine używamy klas Doctrine_* oraz DQL’a, czyli czegoś w rodzaju języka SQL na potrzeby Doctrine. Czy to zaleta? Nie wiem – jednym się to spodoba, a drugim nie.
Tworzenie nowych rzędów jest bardzo podobne w Propelu i Doctrine:
//Propel style $row = new Example(); $row->setName('Hello'); $row->setOther('World'); $row->save(); //Doctrine style $row = new Example() $row->name = 'Hello'; $row->other = 'World'; $row->save();
Autor tutaj zanacza, że Propel ma jedną zaletę w tym stylu zapisu, gdyż Doctrine nie zapisuje zmiennych w modelu.
W podsumowaniu Doctrine wychodzi znacznie lepiej niż Propel. Jani mówi, że nie widzi w ogóle zalet w stosowaniu Propela. Dodaje, że jest słabo udokumentowany i daleko mu do Doctrine. Dodam, że SensioLab jakiś czas temu zatrudniło jednego z autorów Doctrine do rozwijania Symfony, więc prawdopodobnie Doctrine będzie dynamiczniej niż Propel. Więcej info zajdziemy o tym tutaj.

znasz jakieś sensowne tutoriale symphony?(oprocz tej strony oczywiscie
), sama dokumentacja jest raczej ciężka na pierwsze zetknięcie się z tym frameworkiem
właśnie nie ma nic w sieci.