Zf2quickstart Enrico Zimuel

download Zf2quickstart Enrico Zimuel

of 52

Transcript of Zf2quickstart Enrico Zimuel

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    1/52

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    2/52

    All rights reserved. Zend Technologies, Inc.

    Enrico Zimuel (@ezimuel)

    'otware Engineer since !!

    *ssembly +,- CC//- 0a1a- 2erl- 232

    232 Engineer at Zend in the Zend

    Framework Core Team

    &nternational s4eaker about 232 and

    com4uter security to4ics

    Co5author o the italian book

    6232 7est 4ractices8(F*9 edizioni)

    Co5ounder o the 2:9 Torino

    About me

    http://www.phpbestpractices.it/http://torino.grusp.org/http://torino.grusp.org/http://www.phpbestpractices.it/
  • 8/12/2019 Zf2quickstart Enrico Zimuel

    3/52

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    4/52 All rights reserved. Zend Technologies, Inc.

    A new core

    The ZF1way?

    'ingleton- =egistry- and 3ard5Coded

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    5/52 All rights reserved. Zend Technologies, Inc.

    ew arc!itectural a""roac!

    "ethodologies used in the de1elo4ment

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    6/52 All rights reserved. Zend Technologies, Inc.

    #eleases

    ZF2.$.$beta% ne&t week'

    9oal?

    beta on 0une

    ZF #.$ =C this summer

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    7/52 All rights reserved. Zend Technologies, Inc.

    Autoloadin(

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    8/52 All rights reserved. Zend Technologies, Inc.

    Autoloadin(

    ;o more equi e_once calls "ulti4le a44roaches?

    ZF5style include4ath autoloader

    2er5names4ace4rei+ autoloading

    Class5ma4 autoloading

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    9/52

    All rights reserved. Zend Technologies, Inc.

    ZF1)*t+le

    equi e_once'Zend/Loader/StandardAutoloader.php';$loade =newZend\Loader\StandardAutoloader(a ay( 'fallac!_autoloader'="true#

    ;

    $loade %"re&iter(;

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    10/52

    All rights reserved. Zend Technologies, Inc.

    ZF2 *,Pre-i&

    equi e_once'Zend/Loader/StandardAutoloader.php';$loade =newZend\Loader\StandardAutoloader(;$loade %"re&itera)epace( '*y'#__+,-__.'/../lirary/*y' %"re&iterrefi( '0oo_'#__+,-__.'/../lirary/0oo';

    $loade %"re&iter(;

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    11/52

    All rights reserved. Zend Technologies, Inc.

    ZF2 Class)a"

    etu n a ay( '*y\0oo\1ar'="__+,-__.'/0oo/1ar.php'#;

    equi e_once'Zend/Loader/2la*apAutoloader.php';$loade =newZend\Loader\2la*apAutoloader(;$loade %"re&iterAutoload*ap( __+,-__.'/../lirary/.cla)ap.php';$loade %"re&iter(;

    .cla)ap.php

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    12/52

    All rights reserved. Zend Technologies, Inc.

    Classma" (enerator

    3ow to generate the .classma4.4h4GHe 4ro1ided a command line tool?bin,classma"/(enerator."!"

    :sage is tri1ial?

    $ cd your/lirary$ php /path/to/cla)ap_&enerator.php %w

    Class5"a4 will be created in .classma"."!"

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    13/52

    All rights reserved. Zend Technologies, Inc.

    Per-ormance im"ro0ement

    Com"ared wit! t!e ZF1 autoloader

    Class)a"s

    show a #5,I im4ro1ement

    ames"aces,"re-i&es

    shows $5J$I im4ro1ement

    ote !e new autoloadin( s+stem o- ZF2 !as been "orted to ZF 1.12

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    14/52

    All rights reserved. Zend Technologies, Inc.

    e"endenc+4nection

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    15/52

    All rights reserved. Zend Technologies, Inc.

    Zend6i

    'u44orts the D dierent inAection 4atterns?

    Constructor

    &nterace

    'etter

    &m4lements a

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    16/52

    All rights reserved. Zend Technologies, Inc.

    7&am"le

    cla'' 1ar3 4 5

    cla'' 0oo3 p otected $ar; 4 pulic function et1ar(1ar $ar 3

    $thi%"ar= $ar; 5 45

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    17/52

    All rights reserved. Zend Technologies, Inc.

    *am"le de-inition

    $definition = array( '0oo'=" array( 'et1ar'=" array(

    'ar'=" array( 'type' =" '1ar'# 'required'=" true# # #

    #;

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    18/52

    All rights reserved. Zend Technologies, Inc.

    8sin( t!e i container

    ueZend\+i\+i# Zend\+i\2onfi&uration;$di = new+i;

    $confi& = new2onfi&uration(array( 'definition'=" array('cla'=" $definition;$confi&%"confi&ure($di;

    $foo = $di%"&et('0oo'; // contain 1ar6

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    19/52

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    20/52

    All rights reserved. Zend Technologies, Inc.

    i b+ annotation 92:

    $co)piler = new Zend\+i\+efinition\2o)piler+efinition(;$co)piler%"add+irectory('0ile path of 0oo and 1ar';$co)piler%"co)pile(;

    $definition = new Zend\+i\+efinitionLit($co)piler;$di = new Zend\+i\+i($definition;$a: = $di%"&et('0oo'; // contain 1ar6

    "ore use cases o ZendB

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    21/52

    All rights reserved. Zend Technologies, Inc.

    70ent ana(er

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    22/52

    All rights reserved. Zend Technologies, Inc.

    70ent ana(er

    *n 70ent ana(eris an obAect that aggregateslisteners or one or more named e1ents- andwhich triggers e1ents.

    * Listeneris a callback that can react to ane1ent.

    *n 70entis an action.

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    23/52

    All rights reserved. Zend Technologies, Inc.

    7&am"le

    u'eZend\

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    24/52

    All rights reserved. Zend Technologies, Inc.

    ;C

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    25/52

    All rights reserved. Zend Technologies, Inc.

    70ent dri0en arc!itecture

    E1erything is an e0entin the "%C architecture o ZF#

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    26/52

    All rights reserved. Zend Technologies, Inc.

    6* module is a collection o code and other

    iles that sol1es a more s4eciic atomic4roblem o the larger business 4roblem.8

    (rom the ZF# =FC)

    odule de-inition

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    27/52

    All rights reserved. Zend Technologies, Inc.

    odule -or ZF2

    The basic unit in a ZF# a44licationis a odule

    "odules are

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    28/52

    All rights reserved. Zend Technologies, Inc.

    >uick startZend *keleton A""lication

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    29/52

    All rights reserved. Zend Technologies, Inc.

    Zend *keleton A""lication

    * sim4le- skeleton a44lication using the new "%Clayer and the module system

    9ithub? git clone 55recursi1e

    git?github.comzendrameworkZend'keleton*44lication.git

    This 4roAect makes use o 9it submodules

    =eady or ZF2.$.$beta%

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    30/52

    All rights reserved. Zend Technologies, Inc.

    FolderKs tree

    conig

    data

    module

    4ublic

    1endor

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    31/52

    All rights reserved. Zend Technologies, Inc.

    Conig older

    con-i(

    autoload

    a44lication.conig.4h4

    data

    module

    4ublic

    1endor

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    32/52

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    33/52

    All rights reserved. Zend Technologies, Inc.

    "odule older

    module*44lication

    conig

    module.conig.4h4src

    *44licationController

    &nde+Controller.4h41iew

    inde+

    inde+.4htmlodule."!"

    autoloadclassma4.4h4

    autoloadunctions.4h4

    autoloadregisters.4h4

    ;ame o the module

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    34/52

    All rights reserved. Zend Technologies, Inc.

    2ublic older

    "ublic

    images

    As

    css

    .htaccess

    inde+.4h4

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    35/52

    All rights reserved. Zend Technologies, Inc.

    %endor older

    conig

    data

    module

    4ublic

    0endor

    ZendFramework

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    36/52

    All rights reserved. Zend Technologies, Inc.

    .htaccess

    RewriteEngine OnRewriteCond %{REQUEST!I"E#A$E &s 'OR(RewriteCond %{REQUEST!I"E#A$E &l 'OR(RewriteCond %{REQUEST!I"E#A$E &dRewriteR)le *.+ & '#C,"(

    RewriteR)le *.+ inde-.h '#C,"(

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    37/52

    All rights reserved. Zend Technologies, Inc.

    inde+.4h4

    chdir/dirn01e/2IR334re5)ireonce /getenv/6Z!78AT963 :; 6vendor, Zend?Service$0n0ger?Service$0n0ger, Zend?$vc?Service?Service$0n0gerCon@ig)r0tion4

    A)tolo0der!0ctor>;;@0ctor>/34$confi& include'confi&/application.confi&.php' 4

    $er

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    38/52

    All rights reserved. Zend Technologies, Inc.

    return array(

    KmodulesKM array( K*44licationK- )- Kmodulelistenero4tionsKM array(

    KconigcacheenabledKM alse-

    KcachedirKM KdatacacheK- Kmodule4athsKM array( K.moduleK- K.1endorK- )- )-

    Kser1icemanagerKM array( KusedeaultsKM true- KactoriesKM array()- )-)N

    a44lication.conig.4h4

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    39/52

    All rights reserved. Zend Technologies, Inc.

    "odule.4h4names"ace*44licationN

    classoduleO "ublic -unction(etAutoloaderCon-i(() O return arra+( KZendBLoaderBClass"a4*utoloaderK M arra+(

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    40/52

    All rights reserved. Zend Technologies, Inc.

    autoloadclassma4.4h4

    return arra+(

    K*44licationBControllerB&nde+ControllerKM

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    41/52

    All rights reserved. Zend Technologies, Inc.

    module.conig.4h4

    return array(

    KrouterKM array( KroutesK M array( KdeaultKM array( Kty4eK M KZendB"1cB=outerB3tt4B'egmentK- Ko4tionsKM array( KrouteK M KQ?controllerQ?actionRRK- KconstraintsK M array( KcontrollerKM KQa5z*5ZRQa5z*5Z$5!5RSK-

    KactionK M KQa5z*5ZRQa5z*5Z$5!5RSK- )- KdeaultsKM array( KcontrollerKM K&nde+ControllerK- KactionK M Kinde+K- )-)-)- KhomeKM array(

    Kty4eK M KZendB"1cB=outerB3tt4BLiteralK - Ko4tionsK M array( KrouteK M KK- KdeaultsKM array( KcontrollerKM K&nde+ControllerK- KactionK MKinde+K- )-)-)-)-)-

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    42/52

    All rights reserved. Zend Technologies, Inc.

    module.conig.4h4 (#)

    KcontrollerK M array(

    KclassesK M array( K&nde+ControllerKM K*44licationBControllerB&nde+ControllerK )- )- K1iewmanagerKM array( Kdis4laynotoundreasonK M true- Kdis4laye+ce4tionsK M true- Kdocty4eK M K3T"LK- Knotoundtem4lateK M KerrorJ$JK- Ke+ce4tiontem4lateK MKerrorinde+K- Ktem4latema4KM array( KlayoutlayoutKM

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    43/52

    All rights reserved. Zend Technologies, Inc.

    &nde+Controller.4h4

    names4ace*44licationBControllerN

    useZendB"1cBControllerB*ctionController- ZendB%iewB"odelB%iew"odelN

    class&nde+Controller e+tends*ctionControllerO 4ublic unctioninde+*ction() O return new%iew"odel()N PP

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    44/52

    All rights reserved. Zend Technologies, Inc.

    Packa(in( s+stem

    *ource "acka(e

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    45/52

    All rights reserved. Zend Technologies, Inc.

    *ource "acka(e

    htt4?4ackages.zendramework.com

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    46/52

    All rights reserved. Zend Technologies, Inc.

    From ZF1 to ZF2

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    47/52

    ZF1 mi(ration "rotot+"e

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    48/52

    All rights reserved. Zend Technologies, Inc.

    ZF1 mi(ration "rotot+"e

    'ource code?htt4?bit.ly41c$

    Creates a UZCom4atU 1ersion o the ZF dis4atcheras an e1ent listener.

    The bootstra4 largely mimics how ZFKsZend*44lication bootstra4 works.

    The deault route utilizes the new ZF# "%C routing-but mimics what ZF 4ro1ided

    http://bit.ly/pvc0X1http://bit.ly/pvc0X1
  • 8/12/2019 Zf2quickstart Enrico Zimuel

    49/52

    All rights reserved. Zend Technologies, Inc.

    How to contribute

    @e want +ou'

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    50/52

    All rights reserved. Zend Technologies, Inc.

    +

    3ow to contribute? @rite code

    ocumentation

    estin( Feedbacks,comments

    htt4s?github.comzendrameworkz#

    Hel"in( out

  • 8/12/2019 Zf2quickstart Enrico Zimuel

    51/52

    All rights reserved. Zend Technologies, Inc.

    " (

    htt4?ramework.zend.comz#

    htt4?github.comzendramework

    htt4s?github.comzendrameworkZend'keleton*44lication

    9etting 'tarted with Zend Framework #by =ob *llen- htt4?www.akrabat.com

    Heekly &=C meetings (Vz#5meeting on Freenode)

    Vztalk.# on Freenode &=C

    !ank +ou'

    http://framework.zend.com/zf2http://github.com/zendframeworkhttps://github.com/zendframework/ZendSkeletonApplicationhttp://www.akrabat.com/http://www.akrabat.com/https://github.com/zendframework/ZendSkeletonApplicationhttp://github.com/zendframeworkhttp://framework.zend.com/zf2
  • 8/12/2019 Zf2quickstart Enrico Zimuel

    52/52

    All rights reserved. Zend Technologies, Inc.

    !ank +ou'

    ;ote t!is talk

    !tt"s,,oind.in,3B%

    Comments and -eedbacks

    enricoDend.com

    https://joind.in/6384mailto:[email protected]:[email protected]://joind.in/6384