Zend Framework

04.07.2007  |  Gunnar

Zend Framework Zend Framework on uus PHP-aplikatsioonide raamistik, mille arendajaks on PHP-firmana tuntud Zend Technologies Ltd. Leinakella peaks see idee poolest lööma mitmetele läbukoodil elavatele ebaturvalisetele raamistikele ja mine tea – ehk ükspäev jõutakse ka sinna, et uuest raamistikust saab PHP-maailmas n-ö industry standard. Eesmärgid on arendajatel igajuhul väga head: uus raamistik peab olema kergesti laiendatav, lihtsasti kasutatav ja lihtsasti paigaldatav. Ja peale selle – kood on korralikult testitud. Kõlab kenasti.

Minu kokkupuuted PHP maailmaga on hirmuäratavad – korralikku koodi annab otsida tikutulega. Kodumaised sisuhaldus- ja muud süsteemid, millega PHP peal kokku olen puutunud, on kõike muud kui Zendi püstitatud eesmärkidele vastavad. Pea iga väikekontor on ehitanud oma raamistiku, saamata seejuures isegi hästi aru, mida ja milleks tehakse ja kuidas teha. Nii on meie pealt näha kaunis veebiturg täidetud imelike tehniliste Golemitega, mis varem või hiljem oma peremeeste vastu pööravad. Ja ega mujalgi olukord palju parem ole.

Zend Framework on paljuski suunatud ettevõtte tasemel kasutamiseks. Zend lubab, et kood on korralikult testitud ning unit test'id on osaks uuest raamistikust. Loodetavasti õnnestub Zendil juurutada hea tava nimega testimine ka PHP-programmeerijates.

Näide

Zend Framework'i installeerimine läks lihtsasti. Laadisin viimase RC alla ning pakkisin library kataloogi sisu lahti oma rakenduse alamkataloogi lib. Rakendust ise kirjutama ei hakanud, võtsin ühe näite, mis Zend kaasa oli pakiga pannud ning aretasin selle pealt edasi. Ahjaa, üks asi veel, juhuks kui keegi tõesti tahab seda näidet proovida. Rakenduse kataloogi lisasin faili .htaccess ning sinna kirjutasin sellise rea:

php_value include_path "minu rakenduse füüsiline kataloog/lib/"

See rida paneb lisa Zend Framework'i kataloogide hulka, millest relatiivse asukohaga faile otsitakse.

Näiterakendus ise on lihtne. Laeb DT blogi RSS-voo ja kuvab selle tabeli kujul. See tähendab siis seda, et kui skript ilma probleemideta käivitus, ilmub ekraanile tabel koos DT blogi viimase kümne kande lingiga. Kood ise selline.

<?php
require_once 'Zend/Feed.php';
$feed = Zend_Feed::import('http://feeds.feedburner.com/dtblogi');
?>
<html>
<head> 
    <title>Feed:DT Blogi</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h3>DT Blogi</h3>
    <table border="1" cellpadding="2" cellspacing="0">
    <?php
    $i = 0;
    foreach ($feed->items as $item)
    {
        $i++;
        echo '<tr>';
        echo '<td align="right">'.$i.'.</td>';
        echo '<td>';
        echo '<a href="'.$item->link().'">';
        echo $item->title() . '</a></td>';
        echo '</tr>';
    }
    ?>
    </table>
</body>
</html>

Polnudki raske. Muide, Zend Framework sisaldab veel palju mugavaid klasse, mida programmeerijad saavad rakendustes kasutada. Näiteks on olemas klassid andmebaasiga suhtlemiseks, meilide saatmiseks, puhverdamiseks ja palju muud. Samuti on olemas kõik vajalik selleks, et kirjutada kaasaegseid AJAX-i rakendusi.

Kokkuvõtvalt polegi nagu muud öelda, kui – head programmeerimist! :)

11 kommentaari sissekandele “Zend Framework”

  1. CI

    CodeIgniter tundub mugavam.

  2. CI

    Kusjuures CodeIgniteris saab väga hõlpsasti Zend Frameworki library’sid kasutada.

  3. Joosep-Georg

    Su enda koodinäidis on nii jube, et isegi tikutulega vaadates hakkab halb — HTML ja PHP segi.

    Kui kommentaari lisamisel silm mõne kribula pildilt valesti välja loeb, on kogu sisestatud kommentaar kadunud. Sellepärast ongi selline kommentaar ja mitte parem, sest parem kommentaar on juba kõige kaduva teed läinud.

  4. Lembit

    Joosep-Georg: sa kirjutasid siia blogisse 500. kommentaari! Palju õnne, auhinnaks au, kuulsus ja kujuteldav kartulist medal.

    Kahju muidugi, et tegelik 500. komm kaotsi läks. Paraku va kribulatest me lahti ei saa, sest kui need maha võtta, oleks see blogi sekundiga tead-küll-milliseid “kommentaare” täis. Asi on päris tõsine, serveri logidest on näha, et trackback-linke pommitatakse pidevalt nüri järjekindlusega. Õnneks seisab Akismet kindlalt kui kalju.

    Et aga meil on Gunnariga käsil blogi tasapisine upgrade ja kohendamine-korrastamine, siis küllap tasub ka kommenteerimise mugavamaks ja töökindlamaks tegemisele mõelda. Olen isegi meie blogis kommentaare kribulate tõttu kaotanud, äkki leidub mõni parem captcha-plugin. Kommentaari eelvaade ja followup’ide e-postiga tellimise võimalus on veel asjad, millele olen mõelnud.

    Aga PHP-raamistikke mina kommenteerida ei võta.

  5. Lembit

    Hm, kui ma nüüd järgi mõtlen, siis see captcha on meil pigem ajalooline rudiment. Sellega me kaitsesime blogi enne Akismeti aktiveerimist. Ja kui Akismet on olnud ülesannete kõrgusel trackback’ide puhul, siis miks ei peaks ta olema seda kommentaaride osas.

    Joosep-Georg, tänu sinule tekkis mul hetkeline mõtlemisvõime puhang, aitäh. Arvan, et proovime need va kribulad välja lülitada ja vaatame, mis saab.

  6. Gunnar

    Joosep-Georg, näitlikkuse huvides ehk ei hakka lihtsa example-i jaoks looma korralikku MVC-d alla jne. Samas on idee muidugi lahe - et anda edasi 5 rida näidet, võikski teine kord - rõhutamaks arhitektuuri olulist - kirjutada näite, kus on orienteeruv 20.000 rida koos korrektse koodi dokumentatsiooniga.

    Ehkk seda jama ei viitsiks keegi lugeda, on asjal siiski omamoodi pluss olemas - paras posu uusi märksõnu, millega Google meid lahkesti küllaltki headele positsioonidele upitab. Seega, tänan minagi hea idee eest, aga olen kindel, et seda ideed ma vähemasti siin teostama ei hakka. No hard feelings! :)

  7. Anton

    zend on nendest frameworki jubinatest minuarvates kõige arhailisem codeignaiter, cake jne on nendest sammu jagu ees

  8. Gunnar

    Zendi toode on ka päris uus ja pole imestada, et neil pole esimestes pakkides nii palju võimalusi pakkuda kui teistel, kes on kauem turul olnud. Samas pole nendest teistest asjadest meie kallil kodumaal kuigi palju kuulda. Ja pole ka ülevõetud süsteemide juures silma hakanud, et keegi neid framewroke väga kasutaks.

    Ma ei tea, milles on põhjus, kuid arvan, et enamasti inimese see osa, mis nina ja kõrvade vahele jääb. Loodan, et Zendi tehtu on piisavalt lihtne ja probleemitu, et ka PHP maailmas hakkaks lõpuks ometi levima aru aam, et infosüsteem ei ole ainult see, et vägistame mingi rämeda template-i mootori külge ja siis püüame kõik protsessid selle järgi häkkida.

  9. Gustav

    Tegin ise ka hiljuti valiku PHP FW’ide vahel. Sõelale jäid CodeIgniter ja Zend FW.

    Mõned tähelepanekud nende kahe raamistiku kasutuselevõtust.

    CodeIgniter lööb oma lihtsuse ja v hästi koostatud kasutusjuhendiga, mille abiga saab kodanik, kes pole varem MVC’d kasutanud, juba poole tunniga oma esimese test jubina käima.
    CI on lightweight, lihtsalt täiendatav (siin keegi juba mainis, et saab kasutada ka Zend FW library’sid) ja ka lihtsalt häkitav.

    Zend’i FW paistab olema täielik, aga selle manual’ist, kuigi v põhjalik, ei ole esialgu praktiliselt üldse kasu, sest sellest puudub peatükk, mis tutvustaks, kuidas Zend FW on üles ehitatud ja töötab. Seda küll, et MVC, aga igal raamistikul on oma eripärad. Nad peaks selle vea parandama, sest hetkel tuleb ise tutorials leheküljelt otsida mõni artikkel, kust saab kiire ülevaate.
    Zend FW on ilmselt kindla peale minek. Ei ole kartust, et selle arendamine katkeb lähitulevikus ja selle taga on rohkem arendajaid ja kasutajaid.

    Eks valik tuleb teha nagunii igaühel endal, vastavalt oma oskustele ja projekti vajadustele.

  10. Anton

    peamine põhjus miks neid ei kasutada vist selles, et suurem load lööb sellised rakendused suht kiirelt kummuli ja siis pead ikka hakkama oma ja kiiremat tegema 90% cräppi laeb sisse, et teha lihtsaid asju

  11. Gunnar

    Esiteks on framework asi, mis on süsteemi keerukaim osa ja selge on see, et iga mees pole võimeline efektiivset frameworki ehitama. Mingile maale jõuavad kõik proovijad, kuid siis selgub, nagu mu kogemused ülevõetud süsteemidega näidatavad, et mingil hetkel osutub framework liiga jäigaks või kasvab see lihtsalt üle pea. Mõlemad on halvad juhtumid, kuna tellija jaoks pole sellise aluse peal elamine just kõige odavam lõbu.

    Olemasolevaid frameworke, neid mis on korralikult ehitatud, tasub alati kasutada, sest seal on juba paljud keerukad küsimused lahendatud ja hoides ise sama joont, ei tohiks ka suuremaid segadusi nii kergesti juhtuda.

    Jõudluse kohalt on asi lihtne. Tavaliselt kaks asja, mida PHP suurkujud eriti ei armasta - andmebaasi päringute optimeerimine, andmetabelite indekseerimine ja harva muutuvate lehekülgede puhverdamine. 99% juhtudel on see töö tegemata ja kui see korra ära teha, siis kasvab ka süsteemi jõudlus tohutult.

Kommenteeri

sulge
Saada link e-postiga

© DT 2012 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress