Dříve jsem pracoval s PHP, které je dobré na rychlé věci (tzv. naprasení stránek za hodinu). V PHP však lze udělat i velké projekty (centrum.cz, atd.) Přesto mi objektový model PHP nevyhovuje, pročež se snažím používat jiné frameworky, konkrétně http://www.rubyonrails.com/
1. zcela objektový návrh (používá jazyk Ruby), i k sql databázi se přistupuje jako k objektu, např.:
2. template engine nepoužívá žádné nové, skvělé, speciální XML šablony, nýbrž jen obyčejné rhtml (což je Ruby vkládané do HTML ve stylu PHP - někdy se logice v šabloně prostě nevyhnete, např. při opakování elementu na základě předaného pole, ale není k tomu přeci nutné vytvářet specialni jazyk jak to dělá konkurence)
RubyOnRails za mě prostě neděla 1001 věcí, jejichž používání bych se musel učit rok. Nejde o předpřipravené formuláře, jen o framework, který elegantně řeší to, co se dělá v PHP neohrabaně. Příklad aplikace v Rails napsané: http://www.43things.com (doporučuji, je to docela dobrý nápad :-))
To, co zde tak vychvalujete ("databázové objekty"), má ve světě OOT už léta jméno. Říká se tomu ADO - Active Domain Object, a můžete tak programovat v libovolném programovacím jazyce. Tohle celé se mi jeví jako krok zpátky (opět nic nového + kód míchaný v HTML)...
Problém je, že nikdy úplně neoddělíme šablonu a logiku. Občas mám pocit, že spousta projektů stráví většinu času vývojem superspeciálního šablonového jazyka, který bude mít nejlépe stejné možnosti jako každý skriptovací jazyk (a samozřejmě ho pochopí i sekretářka).
Na PHP se ukazuje, že právě toto vkládání kódu přímo do stránky není zas tak špatné, pokud se dělá s mírou ("uvaří" se to nahoře a pak jen vkládá na patřičná místa).
Spousta projektů je plná specialit, ale ve výsledku jde pořád o totéž Hello world.
Objektový princip je mi blízký, přesto ho ale raději dělám v jiném jazyce než v PHP, a to především kvůli ušetřenému času a klávesovým úhozům.
Sablona a logika uplne oddelit nejde to je pravda. Nicmene, spojovat PHP a 'sablonu' dohromady mi prijde zvrhlost - mam na mysli u rozsahlych projektu. Tam je kvalitni templata zaklad. A ze se jich moc dobrych na netu nevali (vim o jedne :)
Jesli umi ta sablona objekty a 'vsechno co PHP' neni az tak dulezite, dulezite je to, kolik prave usetri 'uhozu' a toho casu, nez lepit dohromady PHP a HTML/XML/... A jake prave poskytuje nastroje k tomu, aby byla vykonna a rychla na beh.
Presunout logiku UPLNE do templaty z PHP vrstvy je to, co se mi v PHP osvedcilo nejvic. Daji se tak pouzivat obrovske casti kodu. Za cenu 'slozitejsich' templat, ale ty jsou vzydcky u velkych veci rozsahle, at clovek chce nebo ne. A to je prave ta cast 'one-shot'.
ps: videl jsem tady dohadovani o (ne)velikosti projektu v PHP. Nas nejvetsi projekt v PHP ma radove ~50-60 tisic radku (to je ~2.5-3 mega na zdrojacich) + hafo veci v C/C++ (jako extension do PHP napr.)... A videl jsem i vetsi :)
...Problém je, že nikdy úplně neoddělíme šablonu a logiku. ...
Nejen že ji lze oddělit, ale u velkých projektů to ani jinak nejde. Model-View-Controller je defacto standardem pro psaní webových aplikací. Plácat logiku do "šablony" prostě nelze. Jde jen o to, jak naprogramovat prezentační část.
A o to u programování webových aplikací jde. Jakým způsobem zobrazíte data na stránce. Seaside nabízí velmi atraktivní komponentový model s dekorátory. V JSP máte možnost využít JSTL nebo JSF atd....