Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Zend Framework 1

robertbasic
September 26, 2011

Introduction to Zend Framework 1

A talk I gave on DORS/CLUC 2011 in Zagreb, Croatia, about Zend Framework 1.

robertbasic

September 26, 2011
Tweet

More Decks by robertbasic

Other Decks in Programming

Transcript

  1. Uvod u Zend Framework
    Robert Bašić

    View full-size slide

  2. O meni

    PHP od 2005., “profesionalno” od 2008.

    Volim open source:

    phpplaneta

    web2project

    zf

    Volim knjige, hack i sve ostalo što vole geekovi

    View full-size slide

  3. O prezentaciji

    Uvodna priča u ZF

    Više zašto, nego kako

    Nije tutorijal, pokrivaju se osnovni koncepti

    View full-size slide

  4. PHP Frameworks

    Zašto koristi
    framework?

    Zašto ne koristiti
    framework?

    CodeIgniter, Cake,
    Zend Framework,
    Symfony, Yii,
    Kohana...

    Bilo koji, makar 1

    View full-size slide

  5. Zend Framework

    Open source PHP5 biblioteka za razvoj web
    aplikacija

    New BSD licenca

    Contributors License Agreement

    Razvoj počeo leta 2005.

    0.1.0. mart '06., 1.0.0 jul '07., 1.5.0. mart
    '08., 1.8.0. april '09.

    View full-size slide

  6. Zašto Zend Framework?

    Dobar kôd, unit testiran

    80% code coverage minimum, 90% poželjan

    Mogu se koristiti samo potrebni delovi,
    nezavisno od ostalih delova

    Cilj je da da 80%, ostalih 20% je posao
    programera

    Dokumentacija je dobra (barem po meni)

    Zajednica, mailing liste, blogovi, IRC, twitter

    View full-size slide

  7. Zašto ne Zend Framework?

    Ogroman

    sama biblioteka ~25MB

    biblioteka + docs + tests + … ~75MB

    Težak za savladiti

    Uspeo tek iz drugog pokušaja

    Mogu se koristiti samo potrebni delovi,
    nezavisno od ostalih delova

    Spor(iji od ostalih)

    View full-size slide

  8. Kako se može koristiti?

    Samo potrebne komponente

    Jedna komponenta može zavisiti od neke druge

    Sve zajedno, MVC

    Koristi PEAR konvenciju za nazive

    class Foo_Bar_Baz => Foo/Bar/Baz.php

    lako za autoload => lako za ubaciti u neki
    već postojeći projekat ili uz neku drugu
    biblioteku

    View full-size slide

  9. Komponente

    Auth & ACL

    DB

    MySQL, SQLite, MSSQL, PgSQL

    Forme

    View & layout

    Validatori, filteri

    i18n & l10n

    Lucene

    Mail

    PDF

    Oauth

    XML-RPC

    razni servisi

    Twitter, Akismet,
    ReCaptcha, Yahoo, Google,
    Flickr, LiveDocx...

    60+ komponenti

    View full-size slide

  10. Full stack, MVC

    Češće se koristi na ovaj način

    Prilagodljiv, jako puno toga se može izmeniti

    PHP array, INI, XML, odnedavno i YAML
    konfiguracija

    Preporučeni načini korišćenja

    Komponente se dobro slažu

    Zend_Form + Zend_Validate + Zend_Filter

    Zend_Form + Zend_View

    View full-size slide

  11. Zend_Application

    Inicijalizuje aplikaciju, podešava PHP
    okruženje, autoloader, razne resurse

    Bootstrapping – inicijalizacija

    ono što je konfigurisano da se inicijalizuje

    resursi za db, view, cache, log, sesiju...

    U zavisnosti od okruženja

    web, cli, test...

    View full-size slide

  12. Front Controller

    Svi zahtevi prolaze kroz Front Controller

    usmerava zahtev

    poziva odgovarajuću akciju

    skuplja odgovore

    vraća odgovor

    Daje mogućnost uključivanja u određeni deo
    zahteva pomoću plugin-ova

    View full-size slide

  13. Router

    Određuje na osnovu URI-ja koji modul,
    kontroler, akcija se poziva

    Omogućava mod_rewrite funkcionalnost u
    PHP-u

    View full-size slide

  14. Kontroleri i akcije

    Kontroler je skup akcija

    Akcija je “jedna strana” aplikacije

    Podatak od korisnika ka modelu

    Podatak od modela ka korisniku

    Podrazumevani kontroler/akcija

    Action helpers

    View full-size slide

  15. Views

    Svaka akcija ima svoj view

    PHP kao template engine

    View helpers

    puno ugrađenih, ~55 trenutno

    View full-size slide

  16. Modeli

    Modeli sadrže “srce” aplikacije, poslovnu
    logiku

    U velikoj meri zavise od zahteva aplikacije

    Zend Framework ne daje modele

    Komunikacija sa bazom podataka je samo
    jedan od poslova modela

    Prava pristupa, validacija i filtracija podataka, pristup web
    servisima...

    Zend_Db

    View full-size slide

  17. Zend Framework 2

    U razvoju već više od godinu dana

    PHP 5.3+

    Mnogi delovi poboljšani, ubrzani

    Lakše za savladati, striktnija standardizacija
    dokumentacije

    git umesto SVN-a

    v 2.0.0. bi trebalo da bude dostupno krajem
    godine

    View full-size slide

  18. Hvala na pažnji!
    Pitanja?

    http://robertbasic.com

    https://twitter.com/robertbasic

    https://github.com/robertbasic

    IRC: robertbasic - #phpplaneta, #zftalk,
    #zftalk-community, #zftalk.dev, #phpc

    View full-size slide