Mais conteúdo relacionado
Semelhante a Quick start on Zend Framework 2 (20)
Mais de Enrico Zimuel (20)
Quick start on Zend Framework 2
- 1. A quick start on
Zend Framework 2
by Enrico Zimuel (enrico@zend.com)
Senior Software Engineer
Zend Framework Core Team
Zend Technologies Ltd
© All rights reserved. Zend Technologies, Inc.
- 2. About me
• Enrico Zimuel (@ezimuel)
• Software Engineer since 1996
– Assembly x86, C/C++, Java, Perl, PHP
• PHP Engineer at Zend Technologies in
@ezimuel the Zend Framework Team
enrico@zend.com • International speaker on PHP and
computer security topics
www.zimuel.it
• Researcher programmer at
Informatics Institute of University
of Amsterdam
• Co-founder of the PUG Torino (Italy)
© All rights reserved. Zend Technologies, Inc.
- 3. ZF2 in a slide
● New architecture
▶ MVC, Di, Events, Service, Module
● Better performance
● Requirement: PHP 5.3.3
● No more CLA (Contributor License Agreement)
● Git (GitHub) instead of SVN
● Packaging system
▶ pyrus, composer
© All rights reserved. Zend Technologies, Inc.
- 4. A new core
● The ZF1 way:
▶ Singleton, Registry, and
Hard-Coded
Dependencies
● The ZF2 approach:
▶ Aspect Oriented Design
and Dependency
Injection
© All rights reserved. Zend Technologies, Inc.
- 5. MVC is event driven
● Everything is an event
bootstrap route dispatch
Listeners
© All rights reserved. Zend Technologies, Inc.
- 6. Releases
● ZF2.0.0beta4
● Goal:
▶ beta5 at the end of June
▶ ZF 2.0 RC this summer!!!
© All rights reserved. Zend Technologies, Inc.
- 8. Zend Skeleton Application
● A simple, skeleton application using the new MVC
layer and the module system
● How to install:
$ cd my/project/dir
$ git clone git://github.com/zendframework/ZendSkeletonApplication.git
$ cd ZendSkeletonApplication
$ php composer.phar install
© All rights reserved. Zend Technologies, Inc.
- 9. Output
© All rights reserved. Zend Technologies, Inc.
- 10. Folder's tree
config
data
module
public
vendor
© All rights reserved. Zend Technologies, Inc.
- 11. Config folder
config
autoload
application.config.php
data
module
public
vendor
© All rights reserved. Zend Technologies, Inc.
- 12. Data folder
config
data
cache
module
public
vendor
© All rights reserved. Zend Technologies, Inc.
- 13. Module folder
module
Application Name of the module
config
module.config.php
src
Application
Controller
IndexController.php
view
application
index
index.phtml
error
layout
Module.php
© All rights reserved. Zend Technologies, Inc.
- 14. Public folder
public
images
js
css
.htaccess
index.php
© All rights reserved. Zend Technologies, Inc.
- 15. Vendor folder
config
data
module
public
vendor
zendframework
© All rights reserved. Zend Technologies, Inc.
- 21. ZendServiceManager
● The ServiceManager is a Service Locator
implementation
● A Service Locator is a well-known object in
which you may register objects (more in
general services) and later retrieve them
● Driven by configuration
© All rights reserved. Zend Technologies, Inc.
- 22. Types of Services
● Explicit (name => object pairs)
● Invokables (name => class to instantiate)
● Factories (name => callable returning object)
● Aliases (name => some other name)
● Abstract Factories (unknown services)
● Scoped Containers (limit what can be created)
● Shared (or not; you decide)
© All rights reserved. Zend Technologies, Inc.
- 24. Modules by default
A module is all related code and assets
that solve a specific problem.
Modules inform the MVC about services
and event listeners
© All rights reserved. Zend Technologies, Inc.
- 25. Modules for ZF2
● The basic unit in a ZF2 application
is a Module
● Modules are “Plug and play” technology
● Modules are simple:
▶ A namespace
▶ Containing a single classfile: Module.php
© All rights reserved. Zend Technologies, Inc.
- 26. Develop Modules
● Modules contain all logic related to a
discrete application problem.
▶ Controllers
▶ Entities
▶ Plugins
▶ Etc.
● 99% of the time, you will write modules
© All rights reserved. Zend Technologies, Inc.
- 33. Pyrus
● http://packages.zendframework.com/
● Download or use pyrus, a PEAR2 installer
● Pyrus packages:
▶ Pyrus setup
▶ wget http://packages.zendframework.com/pyrus.phar
▶ pyrus.phar .
▶ pyrus.phar . channeldiscover packages.zendframework.com
▶ Install a Zend_<component>
▶ pyrus.phar . install zf2/Zend_<component>
© All rights reserved. Zend Technologies, Inc.
- 34. Composer
● New package management and distribution
tool
● http://packagist.org/
● http://getcomposer.org/
© All rights reserved. Zend Technologies, Inc.
- 36. From ZF1 to ZF2
© All rights reserved. Zend Technologies, Inc.
- 37. From ZF1 to ZF2
● Goal: migrate without rewriting much code!
● Main steps
▶ Namespace: Zend_Foo => ZendFoo
▶ Autoloading: 3 options
▶ MVC: module, event based, dispatchable
▶ DB: new ZendDb
▶ Form: new ZendForm
● Can run in parallel (instant migration!)
© All rights reserved. Zend Technologies, Inc.
- 39. Why ZF2 rocks!
● Based on solid architecture principles
● Very fast (focused on optimization)
● Open architecture (event driven)
● Support of modules (reuse of the code)
● Driven by the community
(100% open source)
● Completed tested (PHPUnit, Travis CI)
● Packages (pyrus, composer)
© All rights reserved. Zend Technologies, Inc.
- 40. We want you!
● How to contribute:
▶ Write code
▶ Documentation
▶ Testing
▶ Feedbacks/comments
https://github.com/zendframework/zf2
© All rights reserved. Zend Technologies, Inc.
- 41. Helping out
● http://framework.zend.com/zf2
● http://github.com/zendframework
● https://github.com/zendframework/ZendSkeletonApplication
● Getting Started with Zend Framework 2
by Rob Allen, http://www.akrabat.com
● Weekly IRC meetings (#zf2-meeting on
Freenode)
● #zftalk.2 on Freenode IRC
© All rights reserved. Zend Technologies, Inc.
- 42. Thank you!
● Comment this talk at:
▶ https://joind.in/6237
● Direct contact:
▶ enrico@zend.com
▶ @ezimuel
© All rights reserved. Zend Technologies, Inc.