Mirin webspace

Nejbohatší život má ten, kdo žije s minimem nároků

20. 12. 2007 - Komentáře (9) Zend Framework PHP

ZfMySite k dispozici

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:

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)

  1. error414 - 20. 12. 2007 14:43

    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.

  2. koubel - 20. 12. 2007 16:52

    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í.

    Shell scripty jsou tam kvůli deploymentu, viz výše zmiňovaný článek, prostě jsem zvyklý z C/C++ na

    $ ./configure
    $ make
    $ make install
    
    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 :-)

  3. Jakub Podhorský - 21. 12. 2007 15:43

    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 :)

  4. koubel - 22. 12. 2007 17:55

    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.

  5. Jakub Podhorský - 24. 12. 2007 17:11

    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ý :)

  6. DD - 17. 1. 2008 16:26

    Podivně funguje přepínání English | čeština občas se výruší se nastavení jazykové mutace. Jinak pěkne.

  7. koubel - 18. 1. 2008 08:01

    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.

  8. Lukáš Gavenda - 28. 8. 2008 01:18

    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. koubel - 3. 9. 2008 18:22

    [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.