Zf2quickstart Enrico Zimuel
-
Upload
monica-perez-garcia -
Category
Documents
-
view
227 -
download
0
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