SlideShare a Scribd company logo
1 of 34
Download to read offline
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Desenvolvendo 
Aplicações com 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 1 / 34 
2
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Er Galvão Abbott é Presidente da ABRAPHP – Associação 
Brasileira de Profissionais PHP e Diretor da PHP Conference Brasil, 
o principal evento de PHP da América Latina. 
Trabalha há 20 anos desenvolvendo sistemas e aplicações 
com interface web, sendo 15 destes com PHP e 7 com Zend 
Framework. Trabalhou com diversas empresas de grande porte, 
tanto nacionais como internacionais. 
Palestra em eventos, ministra cursos presenciais e a distância 
e é o fundador e líder do GU PHPBR, Grupo de Usuários de 
abrangência nacional, que hoje conta com mais de 1.200 
usuários cadastrados. 
Site: http://www.galvao.eti.br/ 
Twitter: @galvao 
Slides e Documentos: http://slideshare.net/ergalvao 
https://speakerdeck.com/galvao 
Github: http://github.com/galvao 
Quem?! 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 2 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Objetivo 
Apresentar detalhes Básicos → Intermediários sobre o 
Zend Framework 2, detalhando conceitos envolvidos no 
desenvolvimento de uma aplicação. 
Serão apresentados os seguintes tópicos: 
→ Porque escolher o ZF2? 
→ Setup inicial, “Instalação” e Configuração 
→ Ambientes 
→ Rotas 
→ Models, Controllers e Views 
→ Validação 
→ CRUD 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 3 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Por quê ZF2? 
Open Source PHP >= 5.3 
> 2 anos e meio namespaces 
> 2.000 changesets closures 
> 200 profissionais late static binding 
Microsoft, Google, et al. 
Composer Github 
PHAR PHPUnit 
100% OO TravisCI 
S.O.L.I.D. 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 4 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Por quê ZF2? 
Modular 
modules.zendframework.com 
Flexível 
Dependency Injection, 
application.config.php, 
Module.php, 
module.config.php 
Eventos 
Serviços 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 5 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Instalação 
github.com/zendframework/ZendSkeletonApplication 
Composer git clone git submodule download 
composer create-project 
-sdev 
--repository-url="https://packages.zendframework.com" 
zendframework/skeleton-application 
path/to/install 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 6 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Estrutura 
Configuração a nível de aplicação 
Dados da aplicação 
Módulos da aplicação 
Raiz web 
Componentes/Módulos externos 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 7 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Estrutura 
Configuração “global” da Aplicação 
Configuração do “ambiente” 
Configuração a nível de aplicação 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 8 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Estrutura 
Raiz do Módulo 
Configuração do Módulo 
i18n 
Fonte do Módulo 
Inicialização do Módulo 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 9 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Estrutura 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 10 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Skeleton Application – Estrutura 
Zend Framework 2 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 11 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
MVC – ZF2 Style 
Requisição 
Inicialização 
do Módulo Bootstrap 
Roteamento Dispatch 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 12 / 34 
Execução da 
Aplicação 
Resposta
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Setup inicial 
public/index.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 13 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 14 / 34 
Setup inicial 
config/autoload/global.php
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 15 / 34 
Setup inicial 
config/autoload/local.php
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 16 / 34 
Setup inicial 
module/Application/Module.php
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Setup inicial 
config/application.config.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 17 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
module/Application/config/module.config.php … ?!?! 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 18 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
module/Application/config/module.config.php … ?!?! 
Muita calma nessa hora! 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 19 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Ufa! 
module/Application/config/module.config.php 
Rotas 
Serviços 
Controllers “disponíveis” 
Questões sobre a camada de view 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 20 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Rotas 
Literais 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 21 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Rotas 
Com rotas filhas / com segmentos (≃ ZF1) 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 22 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Controllers 
module/Application/src/Application/Controller/IndexController.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 23 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Dados Externos: Forms 
module/Application/src/Application/Form/User/Register.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 24 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Dados Externos: Filtros 
module/Application/src/Application/Filter/User/Register.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 25 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models 
module/Application/src/Application/Model/User.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 26 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models 
module/Application/src/Application/Model/UserTable.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 27 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models 
module/Application/src/Application/Module.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 28 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models - CRUD 
module/Application/src/Application/Model/UserTable.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 29 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models - CRUD 
module/Application/src/Application/Model/UserTable.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 30 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Models - CRUD 
module/Application/src/Application/Model/UserTable.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 31 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Unindo as partes na Controller 
module/Application/src/Application/Controller/UserController.php 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 32 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Concluindo... 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 33 / 34
Desenvolvendo Aplicações com ZF2 www.galvao.eti.br 
Obrigado! 
? Dúvidas? 
↓ Críticas? 
↑ Elogios?! 
CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 34 / 34

More Related Content

Viewers also liked

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Er Galvão Abbott
 
Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Laurence Body
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativasElton Minetto
 
CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0Matheus Marabesi
 
6 questões que levam à inovação
6 questões que levam à inovação6 questões que levam à inovação
6 questões que levam à inovaçãoElton Minetto
 
De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016Elton Minetto
 

Viewers also liked (6)

Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7Tudo o que você precisa saber sobre o php7
Tudo o que você precisa saber sobre o php7
 
Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1Le livre blanc de l'expérience client - Vol 1
Le livre blanc de l'expérience client - Vol 1
 
Metodologias ágeis interativas
Metodologias ágeis interativasMetodologias ágeis interativas
Metodologias ágeis interativas
 
CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0CK 10 - Automate all the things 2.0
CK 10 - Automate all the things 2.0
 
6 questões que levam à inovação
6 questões que levam à inovação6 questões que levam à inovação
6 questões que levam à inovação
 
De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016De Padawan a Jedi - Versão 2016
De Padawan a Jedi - Versão 2016
 

Similar to Desenvolvendo aplicações com ZF2

Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberEr Galvão Abbott
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Flávio Lisboa
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoEr Galvão Abbott
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Cleverson Sacramento
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...Renato Groff
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...Renato Groff
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017Vitor Mattos
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018Renato Groff
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre BootstrapIvo Calado
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresasRafael Gomes
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterEric Silva
 

Similar to Desenvolvendo aplicações com ZF2 (20)

Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Unbreakeable php
Unbreakeable phpUnbreakeable php
Unbreakeable php
 
Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saber
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderoso
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
Misturando Demoiselle, Nuvem e Mobilidade no Latinoware 2012
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - .NET SP ...
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas....NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
.NET Core e ASP.NET Core: Presente e Futuro - .NET Conf Local 2018 - Campinas...
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
W2py pyconpe
W2py pyconpeW2py pyconpe
W2py pyconpe
 
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
.NET Core e ASP.NET Core: Presente e Futuro - .NET SP - Novembro/2018
 
Tutorial sobre Bootstrap
Tutorial sobre BootstrapTutorial sobre Bootstrap
Tutorial sobre Bootstrap
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
 
CEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniterCEPUG 2 - Bem-vindo a Framework CodeIgniter
CEPUG 2 - Bem-vindo a Framework CodeIgniter
 

More from Er Galvão Abbott

Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e ComoEr Galvão Abbott
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaEr Galvão Abbott
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPEr Galvão Abbott
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoEr Galvão Abbott
 
PHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelPHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelEr Galvão Abbott
 

More from Er Galvão Abbott (12)

Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e Como
 
Além da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend FrameworkAlém da autenticação: Permissões de acesso com Zend Framework
Além da autenticação: Permissões de acesso com Zend Framework
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de Cinza
 
Top 10 OWASP com PHP
Top 10 OWASP com PHPTop 10 OWASP com PHP
Top 10 OWASP com PHP
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHP
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 
PHP e Segurança - Uma união possível
PHP e Segurança - Uma união possívelPHP e Segurança - Uma união possível
PHP e Segurança - Uma união possível
 

Desenvolvendo aplicações com ZF2

  • 1. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Desenvolvendo Aplicações com CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 1 / 34 2
  • 2. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Er Galvão Abbott é Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP e Diretor da PHP Conference Brasil, o principal evento de PHP da América Latina. Trabalha há 20 anos desenvolvendo sistemas e aplicações com interface web, sendo 15 destes com PHP e 7 com Zend Framework. Trabalhou com diversas empresas de grande porte, tanto nacionais como internacionais. Palestra em eventos, ministra cursos presenciais e a distância e é o fundador e líder do GU PHPBR, Grupo de Usuários de abrangência nacional, que hoje conta com mais de 1.200 usuários cadastrados. Site: http://www.galvao.eti.br/ Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao https://speakerdeck.com/galvao Github: http://github.com/galvao Quem?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 2 / 34
  • 3. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Objetivo Apresentar detalhes Básicos → Intermediários sobre o Zend Framework 2, detalhando conceitos envolvidos no desenvolvimento de uma aplicação. Serão apresentados os seguintes tópicos: → Porque escolher o ZF2? → Setup inicial, “Instalação” e Configuração → Ambientes → Rotas → Models, Controllers e Views → Validação → CRUD CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 3 / 34
  • 4. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Por quê ZF2? Open Source PHP >= 5.3 > 2 anos e meio namespaces > 2.000 changesets closures > 200 profissionais late static binding Microsoft, Google, et al. Composer Github PHAR PHPUnit 100% OO TravisCI S.O.L.I.D. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 4 / 34
  • 5. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Por quê ZF2? Modular modules.zendframework.com Flexível Dependency Injection, application.config.php, Module.php, module.config.php Eventos Serviços CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 5 / 34
  • 6. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Instalação github.com/zendframework/ZendSkeletonApplication Composer git clone git submodule download composer create-project -sdev --repository-url="https://packages.zendframework.com" zendframework/skeleton-application path/to/install CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 6 / 34
  • 7. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Estrutura Configuração a nível de aplicação Dados da aplicação Módulos da aplicação Raiz web Componentes/Módulos externos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 7 / 34
  • 8. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Estrutura Configuração “global” da Aplicação Configuração do “ambiente” Configuração a nível de aplicação CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 8 / 34
  • 9. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Estrutura Raiz do Módulo Configuração do Módulo i18n Fonte do Módulo Inicialização do Módulo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 9 / 34
  • 10. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Estrutura CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 10 / 34
  • 11. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Skeleton Application – Estrutura Zend Framework 2 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 11 / 34
  • 12. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br MVC – ZF2 Style Requisição Inicialização do Módulo Bootstrap Roteamento Dispatch CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 12 / 34 Execução da Aplicação Resposta
  • 13. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Setup inicial public/index.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 13 / 34
  • 14. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 14 / 34 Setup inicial config/autoload/global.php
  • 15. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 15 / 34 Setup inicial config/autoload/local.php
  • 16. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 16 / 34 Setup inicial module/Application/Module.php
  • 17. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Setup inicial config/application.config.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 17 / 34
  • 18. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br module/Application/config/module.config.php … ?!?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 18 / 34
  • 19. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br module/Application/config/module.config.php … ?!?! Muita calma nessa hora! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 19 / 34
  • 20. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Ufa! module/Application/config/module.config.php Rotas Serviços Controllers “disponíveis” Questões sobre a camada de view CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 20 / 34
  • 21. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Rotas Literais CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 21 / 34
  • 22. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Rotas Com rotas filhas / com segmentos (≃ ZF1) CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 22 / 34
  • 23. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Controllers module/Application/src/Application/Controller/IndexController.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 23 / 34
  • 24. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Dados Externos: Forms module/Application/src/Application/Form/User/Register.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 24 / 34
  • 25. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Dados Externos: Filtros module/Application/src/Application/Filter/User/Register.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 25 / 34
  • 26. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models module/Application/src/Application/Model/User.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 26 / 34
  • 27. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models module/Application/src/Application/Model/UserTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 27 / 34
  • 28. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models module/Application/src/Application/Module.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 28 / 34
  • 29. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models - CRUD module/Application/src/Application/Model/UserTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 29 / 34
  • 30. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models - CRUD module/Application/src/Application/Model/UserTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 30 / 34
  • 31. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Models - CRUD module/Application/src/Application/Model/UserTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 31 / 34
  • 32. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Unindo as partes na Controller module/Application/src/Application/Controller/UserController.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 32 / 34
  • 33. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Concluindo... CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 33 / 34
  • 34. Desenvolvendo Aplicações com ZF2 www.galvao.eti.br Obrigado! ? Dúvidas? ↓ Críticas? ↑ Elogios?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 9/27/14 - 34 / 34