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

Zend Framework 2

Zend Framework 2

An introduction to Zend Framework 2, Webkonf 2011 (http://webkonf.org/), Budapest, Hungary

robertbasic

October 07, 2011
Tweet

More Decks by robertbasic

Other Decks in Programming

Transcript

  1. Zend Framework 2
    Robert Bašić

    View Slide

  2. Ki vagyok én?

    PHP 2005-töl,
    “szakmailag” 2008-töl

    Szeretem az open
    source-ot:
    – phpplaneta
    – web2project
    – zf

    View Slide

  3. PHP? Zend Framework?
    ?

    View Slide

  4. Zend Framework!

    Nyilt forráskódu PHP
    framework, könyvtár

    New BSD license

    Az egyik
    legnépszerübb és
    leghasználtab PHP
    framework

    View Slide

  5. Egy kis történelem...

    október 2005. ZF1 fejlesztése bejelentve

    0.1.0. március 2006, 1.0.0. július 2007.

    1.5.0. március 2008, 1.8.0. április 2009.

    február 2010. elkezdődöt a ZF2 fejlesztése

    View Slide

  6. Zend Framework 1, problémák

    View Slide

  7. Lassú

    View Slide

  8. Varázslat

    View Slide

  9. Nehéz megtanulni

    View Slide

  10. Zend Framework 2

    View Slide

  11. Forradalom!

    View Slide

  12. Fejlődés!

    View Slide

  13. Átirni ott ahol van értelme

    View Slide

  14. Lassú

    View Slide

  15. Lassú, autoloading

    Csak a beépítet PHP autoloading-ot használni,
    kidobni a require_once hívásokat

    classmaps a leggyorsabb, de szinkronban kell
    tartani
    – eszközök classmap generáláshoz
    – “élőben” ezt ajánlatos használni

    StandardAutoloader mint “B terv” a classmap-
    hoz
    – PSR-0 szabvány szerint

    View Slide

  16. Autoloading példa

    https://github.com/akrabat/zf2-
    learning/blob/master/autoloader/3_autoloaderfactory.php

    View Slide

  17. Lassú, bővitmények

    Beolvasásuk nagyon lassú

    A bővitmények példányosítása különbözik a
    kulönböző komponensek közt

    Rendbehozva, mindegyik komponens ugyanúgy
    csinálja

    PluginBroker és PluginLoader

    ClassMapAutoloader és PrefixPathLoader

    View Slide

  18. Lassú, DI

    Használni a Dependency Injection-t

    Példanyositani csak azokat az objektumokat
    amelyek szukségesek, amikor szukségesek

    View Slide

  19. Zend\Di

    View Slide

  20. Zend\Di

    https://github.com/akrabat/zf2-
    learning/tree/master/di

    View Slide

  21. Varázslat

    A határozott jobb mint a beleértett (explicit vs
    implicit)

    __set, __get, __call és hasonlo varázslatos
    módszereket kerülni

    láthato főleg a bövitményeken

    View Slide

  22. Varázslat, ZF1 view helper

    View Slide

  23. Varázslat, ZF2 view helper

    View Slide

  24. Nehéz megtanulni

    Kevesebb varázslat, érthetőbb forráskód

    Szabványosítot API

    Jobb dokumentació

    Bevezető, quickstart, opciók, metodusok,
    példák

    View Slide

  25. Eddigi fejlesztés

    SVN -> git && github, sokkal könnyebb
    csatlakozni a fejlesztéshez
    – CLA még mindig kell

    namespaces - névtér

    exceptions - kivételek

    request/response – kérés/válasz

    bővitmények

    Zend\Di, Zend\EventManager, Zend\Mvc

    View Slide

  26. ZF 2 részei

    component – komponens – 1 különleges feladat
    megoldására

    library – könyvtár – komponensek összege

    module – módul – 1 üzleti feladat megoldására
    komponensek és könyvtárak segítségével

    application – aplikáció – módulok összege

    View Slide

  27. Core - Mag

    Loading

    Configuration

    Caching, Logging

    EventManager, DI,
    Code Generation

    HTTP, REST

    URI

    Session

    Console

    Crypt

    Filter, Validation

    Stdlib

    SPL Extensions

    Dispatchable

    Callback

    Memory

    Version

    View Slide

  28. Adatbázis és adat formák

    DB

    DOM manipulation

    Feed reader/writer

    Mail

    Serialization

    JSON

    AMF

    ICal

    View Slide

  29. Biztonság

    Authentication

    Authorization

    Identity

    OpenID

    Oauth

    InfoCard

    LDAP

    View Slide

  30. I18n && L10n

    Translator

    Locale

    Currency

    Date

    Locale

    Measure

    Translator

    TimeSync

    View Slide

  31. MVC

    Controller

    Front controller

    Action controllers

    View and Layout

    Navigation

    Paginator

    ProgressBar

    Tag Cloud

    Server Components

    XML-RPC

    JSON-RPC

    SOAP

    AMF

    Form

    View Slide

  32. Fejlesztés

    Debug

    Wildfire

    Tool

    Functional testing framework

    View Slide

  33. Többi

    Queue

    Javascript

    Dojo

    jQuery

    Barcode

    Services

    Captcha

    Cloud

    PDF

    Search, Lucene

    Markup

    View Slide

  34. Modulok

    Direktorium (vagy phar), kód gyüjtemény
    – MVC, class, tests, views, JS/CSS/img...

    Névtér, névterek

    classmap, PSR-0 kompatibilis

    Module.php

    Modulok függhetnek más moduloktol

    View Slide

  35. Modulok

    Különböző eszközök (resources) megosztása a
    modulok között (pl adatbázis kapcsolat)

    Modulok bővithetnek más modulokat

    Modulok instalálása, deinstalálása

    Közösség által fejlesztet modulok gyüjteménye
    – zfcampus.org

    View Slide

  36. Modulok

    View Slide

  37. Modulok

    View Slide

  38. Közösség

    “A Rant From Mr. Grumpy on ZF2”

    ZF2 Dev blog, (két)heti updatek

    IRC találkák minden masodik szerdán, 17UTC

    #zftalk.2 és a levelező lista feléledt

    RFCk

    View Slide

  39. A jövő

    Kész lesz mikor kész lesz az MVC

    Google szerű beták
    – új hozzáadások, API változtatása
    – az első beta az idei ZendCon-on

    ZF X minden ~18 hónapban

    Nem lesz többet ekkora átírás mint ZF1 > ZF 2

    View Slide

  40. Köszönöm a figyelmüket!
    Kérdés?

    http://framework.zend.com/

    https://github.com/zendframework

    http://framework.zend.com/blog


    http://robertbasic.com/

    https://twitter.com/robertbasic

    robertbasic @ freenode: #zftalk #zftalk.2
    #zftalk.dev #zftalk-community

    View Slide