Jak jsem slíbil, zdrojové kódy celé web aplikace jsou k dispozici. Celá aplikace je postavena na Zend Frameworku 1.0.3. Balíček obsahuje klasické soubory jako README, INSTALL apod., ze kterých je možné vyčíst jak na zprovoznění. Na hostingu mě to běží na PHP 5.1.5, MySQL 4.1, mysqli, takže by neměl být problém ani u hostingů, které nemají nejnovější verze PHP a MySQL.
V aplikaci je všechno, o čem jsem se na blogu psal:
- Aplikační třídu
- Doménové objekty a DAO
- Jednoduchý deployment systém založený na autoconf a make
- překlady, systém pro uchovávání URL a další.
Ze Zend Frameworku jsem použil, co se dalo - MVC, ViewRenreder, ErrorController, Feed, Locale, Translation, Zend_Db, Zend_Db_Table, Row a Select.
Budu se snažit dál aplikaci udržovat a rozvíjet tak, aby se tam daly uplatňovat další komponenty Zend Frameworku a rozvíjet stávající.
Je také pár věcí, které mě na použití Zend Frameworku vadily. Zejména je to rychlost, režije samotného MVC je docela vysoká, aplikace s vysokou návštevností by měly použít nějaký způsob cachování, případně i bytecode cache (např. apc), některé komponenty jako např. Zend_Date také moc rychlostí neoplývají. Dále mě citelně chybí podpora formulářů, filtrační a validační třídy nemají podporu lokalizace, překlady nepodporují množná čísla. Uvidíme, jak to půjde vývoj Zend Frameworku a PHP dál.
Poznámka:
Na stránce s informacemi s nachází odkaz vždy na poslední aktuální balíček se zdrojovými kódy aplikace.
Komentáře (9)
pekne jen jsem narazil na maly zadrhel s short_open_tag v souboru mainTemplate.phtml.
Jo, a jeste sem moc nepochopil proc je v aplikaci tolik shelovych scriptu. U php aplikace se me to zda zbytecne.
S tím short_open_tag bude asi problém kvůli té xml deklaraci, já už používám zásadně short_open_tag = Off, zatím to tak asi nechám, následně totiž použiji Zend_Layout a ten obsahuje metody na generování (X)HTML záhlaví.
na linuxu běžná věc, na win používám msys. Skripty v adresáři aconf jsou nutné převážně kvůli autoconf a make install. Někdo to může dělat přes phing, ant, nebo si píše vlastní setup/install.php, případně ručně, já to dělám přes autoconf/make :-)Shell scripty jsou tam kvůli deploymentu, viz výše zmiňovaný článek, prostě jsem zvyklý z C/C++ na
pěkný :) jen bych možná modelový třídy doplnil o lazy loading
mimochodem já když vidím používání Zend_Registry tak je mi hned zle :)
něco jako lazy loading tam mam, když zavoláš u modelu Article metodu getCommentCount() tak sahne do databaze a vrati pocet komentaru k clanku, u nejakych metod (treba getAll() v tride Article) si pomoci parametru $extendedInfo urcim, jestli se maji urcite informace loadovat rovnou, nebo az se zavola dana metoda (lazy), podobne "az kdyz je potreba" jsem mel udelane i inicializaci DAO u model trid , ale neslo mi nejak zobecnit do abstraktni model tridy, tak jsem se na to vykaslal, protoze mam u DAO trid zapnute cachovani tabulkovych metadat, tak je to v podstate jedno.
jo koukal jsem že tam něco jako "lazy load" máš ale tobě se ten objekt vytváří už při instanci modelu lepší je tu instanci vytvářet až ve chvíli kdy skutečně k DAO přistupuješ takže bych to přesunul až do getDao() ale jak se dívám tak by to nebylo nijak jednoduchý :)
Podivně funguje přepínání English | čeština občas se výruší se nastavení jazykové mutace. Jinak pěkne.
vím o tom, je to bug, neukládám cookies, v příští verzi se to pokusím napravit, chystám ještě další změny, někdy příští týden to snad bude hotové a napíšu o tom něco na blog.
Sice už to je asi out-of-date, ale narazil jsem na tento blog až nyní, zkusil si aplikaci stáhnout a dodal bych jen, že v /app/modules/blog/models/Dao.php je třeba změnit $backendOptions parametr (řádek 47) změnit z cacheDir na cache_dir aby to fungovalo.
Hezký příklad aplikace vytvořené v ZF ;)
L.G.
[9] - to už tam dávno není, pravděpodobně to bylo v nějaké staré verzi založené na ZF 0.x nebo 1.0.x (asi jsi ztahoval ten 0.9 tarball), poslední verze v svn - http://websvn.mirin.cz/wsvn/zfMySite/trunk/ nebo poslední tarball na http://www.mirin.cz/media/projects/zfmysite/zfMySite-2.0.tar.gz je na pro ZF 1.5 a tam už je Dao třída předělaná
Komentáře jsou uzavřeny.