SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Menor, Melhor e
Mais Poderoso!


 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 1 / 46
Quem?!

     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á mais de 18 anos desenvolvendo sistemas e
aplicações com interface web, sendo 11 destes com PHP e 4
com Zend Framework. Trabalhou com diversas empresas de
grande porte, tanto nacionais como internacionais.

     Palestra em eventos, dá cursos em diversas instituições 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

      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 2 / 46
Objetivo

    Esta palestra tem por objetivo apresentar o Zend Framework 2, a nova versão de um
dos frameworks mais utilizados com a linguagem PHP, que foi lançada recentemente.
    Além disso serão demonstrados os conceitos básicos envolvidos no desenvolvimento
de uma aplicação com ZF2.

    Serão apresentados os seguintes tópicos:

    → Vantagens e desvantagens de se utilizar um Framework
    → Principais frameworks em PHP
    → Porque escolher o ZF2?
    → Setup inicial
    → Ambientes
    → Models, Controllers e Views
    → CRUD
    → Customização de Rotas




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 3 / 46
Framework – Vantagens e desvantagens




 ↑ Foco na aplicação
 ↑ Padronização
 ↑ Organização
 ↑ Simplificação de problemas complexos

 ↓ Curva inicial de aprendizado alta
 ↓ “Engessamento” da aplicação
 ↓ Dependência do Framework



CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 4 / 46
FrameWARks




        Os 7 Frameworks PHP mais populares em 2011 – Fonte: PHP-Developer.org




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 5 / 46
FrameWARks




Avaliação de “interesse”, número de queries no Google. Fonte – Google Trends
             Ordem dos termos: ZF, CI, Symfony, Yii e CakePHP




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 6 / 46
Por quê ZF2?




 ↑ Foco na aplicação
 ↑ Padronização
 ↑ Organização
 ↑ Simplificação de problemas complexos

 ↓ Curva inicial de aprendizado alta
 ↓ “Engessamento” da aplicação
 ↓ Dependência do Framework



CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 7 / 46
Por quê ZF2?




 ↑ Foco na aplicação
 ↑ Padronização
 ↑ Organização
 ↑ Simplificação de problemas complexos

 ↓ Curva inicial de aprendizado alta
 ↓ “Engessamento” da aplicação
 ↓ Dependência do Framework



CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 8 / 46
Por quê ZF2?




 ↑ Foco na aplicação
 ↑ Padronização
 ↑ Organização
 ↑ Simplificação de problemas complexos

 ↓ Curva inicial de aprendizado alta
 ↓ “Engessamento” da aplicação
 ↓ Dependência do Framework



CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 9 / 46
Por quê ZF2?




 ↑ Foco na aplicação
 ↑ Padronização
 ↑ Organização
 ↑ Simplificação de problemas complexos

 ↓ Curva inicial de aprendizado alta
 ↓ “Engessamento” da aplicação
 ↓ Dependência do Framework



CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 10 / 46
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 - 4/16/13 - 11 / 46
Setup inicial




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 12 / 46
Setup inicial




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 13 / 46
Setup inicial


                                                          Configuração a nível de aplicação




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 14 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 15 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 16 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 17 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 18 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 19 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 20 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models
                                                          Views




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 21 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models
                                                          Views



                                                          Layout




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 22 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models
                                                          Views



                                                          Layout
                                                          Raiz web




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 23 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models
                                                          Views



                                                          Layout
                                                          Raiz web
                                                          Componentes externos


CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 24 / 46
Setup inicial


                                                          Configuração a nível de aplicação
                                                          Configuração de “ambientes”
                                                          Módulos da aplicação


                                                          Configuração a nível de Módulo
                                                          Código-fonte do Módulo


                                                          Controllers
                                                          Models
                                                          Views



                                                          Layout
                                                          Raiz web
                                                          Componentes externos
                                                          Zend Framework 2

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 25 / 46
Setup inicial
ZF2TestApp/public/.htaccess




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 26 / 46
Setup inicial
ZF2TestApp/public/index.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 27 / 46
Setup inicial
ZF2TestApp/init_autoloader.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 28 / 46
Setup inicial
ZF2TestApp/config/application.config.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 29 / 46
Setup inicial
ZF2TestApp/module/Application/Module.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 30 / 46
Setup inicial
ZF2TestApp/module/Application/config/module.config.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 31 / 46
Setup inicial
ZF2TestApp/config/autoload/global.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 32 / 46
Setup inicial
ZF2TestApp/config/autoload/local.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 33 / 46
Models
ZF2TestApp/module/Application/src/Application/Model/Produto.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 34 / 46
Models
ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 35 / 46
Models – CRUD
ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 36 / 46
Models – CRUD
ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 37 / 46
Models – CRUD
ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 38 / 46
Controllers - CRUD
ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 39 / 46
Controllers - CRUD
ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 40 / 46
Controllers - CRUD
ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 41 / 46
Views
ZF2TestApp/module/Application/view/application/produto/index.phtml




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 42 / 46
CRUD – Setup adicional
ZF2TestApp/module/Application/config/module.config.php




     CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 43 / 46
CRUD – Setup adicional
ZF2TestApp/module/Application/Module.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 44 / 46
Além disso...


Zend
  Authentication                                            Ldap
  Cache                                                     Log
  Console                                                   Mail
  Crypt                                                     PermissionsAcl
  EventManager                                              Validator
  Form
  I8n

  (...)

  CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 45 / 46
Obrigado!




                             ? Dúvidas?
                             ↓ Críticas?
                             ↑ Elogios?!




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 46 / 46

Más contenido relacionado

Similar a ZF2 Setup inicial

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
 
Automação do ciclo de vida de software para Java
Automação do ciclo de vida de software para JavaAutomação do ciclo de vida de software para Java
Automação do ciclo de vida de software para JavaRafael Souza
 
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
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
Guia de instalação ECM
Guia de instalação ECMGuia de instalação ECM
Guia de instalação ECMraquelrioga
 
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
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkJaime Neto
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Afonso Brandão
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso brCarlos Veiga
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2Er Galvão Abbott
 
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...JP Clementi
 
Construindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSConstruindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSAmazon Web Services LATAM
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livreelliando dias
 
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
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Flávio Lisboa
 

Similar a ZF2 Setup inicial (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
 
Automação do ciclo de vida de software para Java
Automação do ciclo de vida de software para JavaAutomação do ciclo de vida de software para Java
Automação do ciclo de vida de software para Java
 
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
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
Guia de instalação ECM
Guia de instalação ECMGuia de instalação ECM
Guia de instalação ECM
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon Framework
 
Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)Brutos Framework (Java WEB MVC)
Brutos Framework (Java WEB MVC)
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso br
 
DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2DRYing the Skeleton: Reducing code repetition in ZF2
DRYing the Skeleton: Reducing code repetition in ZF2
 
Cake Php
Cake PhpCake Php
Cake Php
 
Instalacao eclipse-servidor-tomcat
Instalacao eclipse-servidor-tomcatInstalacao eclipse-servidor-tomcat
Instalacao eclipse-servidor-tomcat
 
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
 
Construindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWSConstruindo um ambiente resiliente para Ransomware com AWS
Construindo um ambiente resiliente para Ransomware com AWS
 
Desenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software LivreDesenvolvendo Aplicações com Software Livre
Desenvolvendo Aplicações com Software Livre
 
W2py pyconpe
W2py pyconpeW2py pyconpe
W2py pyconpe
 
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
 
Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016Zend framework 3 Hangout 2016
Zend framework 3 Hangout 2016
 
Configurando o brazil firewall
Configurando o brazil firewallConfigurando o brazil firewall
Configurando o brazil firewall
 

Más de Er Galvão Abbott

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
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er 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
 
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
 

Más de Er Galvão Abbott (15)

Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
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
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
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
 
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
 

ZF2 Setup inicial

  • 1. Menor, Melhor e Mais Poderoso! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 1 / 46
  • 2. Quem?! 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á mais de 18 anos desenvolvendo sistemas e aplicações com interface web, sendo 11 destes com PHP e 4 com Zend Framework. Trabalhou com diversas empresas de grande porte, tanto nacionais como internacionais. Palestra em eventos, dá cursos em diversas instituições 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 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 2 / 46
  • 3. Objetivo Esta palestra tem por objetivo apresentar o Zend Framework 2, a nova versão de um dos frameworks mais utilizados com a linguagem PHP, que foi lançada recentemente. Além disso serão demonstrados os conceitos básicos envolvidos no desenvolvimento de uma aplicação com ZF2. Serão apresentados os seguintes tópicos: → Vantagens e desvantagens de se utilizar um Framework → Principais frameworks em PHP → Porque escolher o ZF2? → Setup inicial → Ambientes → Models, Controllers e Views → CRUD → Customização de Rotas CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 3 / 46
  • 4. Framework – Vantagens e desvantagens ↑ Foco na aplicação ↑ Padronização ↑ Organização ↑ Simplificação de problemas complexos ↓ Curva inicial de aprendizado alta ↓ “Engessamento” da aplicação ↓ Dependência do Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 4 / 46
  • 5. FrameWARks Os 7 Frameworks PHP mais populares em 2011 – Fonte: PHP-Developer.org CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 5 / 46
  • 6. FrameWARks Avaliação de “interesse”, número de queries no Google. Fonte – Google Trends Ordem dos termos: ZF, CI, Symfony, Yii e CakePHP CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 6 / 46
  • 7. Por quê ZF2? ↑ Foco na aplicação ↑ Padronização ↑ Organização ↑ Simplificação de problemas complexos ↓ Curva inicial de aprendizado alta ↓ “Engessamento” da aplicação ↓ Dependência do Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 7 / 46
  • 8. Por quê ZF2? ↑ Foco na aplicação ↑ Padronização ↑ Organização ↑ Simplificação de problemas complexos ↓ Curva inicial de aprendizado alta ↓ “Engessamento” da aplicação ↓ Dependência do Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 8 / 46
  • 9. Por quê ZF2? ↑ Foco na aplicação ↑ Padronização ↑ Organização ↑ Simplificação de problemas complexos ↓ Curva inicial de aprendizado alta ↓ “Engessamento” da aplicação ↓ Dependência do Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 9 / 46
  • 10. Por quê ZF2? ↑ Foco na aplicação ↑ Padronização ↑ Organização ↑ Simplificação de problemas complexos ↓ Curva inicial de aprendizado alta ↓ “Engessamento” da aplicação ↓ Dependência do Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 10 / 46
  • 11. 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 - 4/16/13 - 11 / 46
  • 12. Setup inicial CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 12 / 46
  • 13. Setup inicial CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 13 / 46
  • 14. Setup inicial Configuração a nível de aplicação CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 14 / 46
  • 15. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 15 / 46
  • 16. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 16 / 46
  • 17. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 17 / 46
  • 18. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 18 / 46
  • 19. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 19 / 46
  • 20. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 20 / 46
  • 21. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models Views CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 21 / 46
  • 22. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models Views Layout CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 22 / 46
  • 23. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models Views Layout Raiz web CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 23 / 46
  • 24. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models Views Layout Raiz web Componentes externos CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 24 / 46
  • 25. Setup inicial Configuração a nível de aplicação Configuração de “ambientes” Módulos da aplicação Configuração a nível de Módulo Código-fonte do Módulo Controllers Models Views Layout Raiz web Componentes externos Zend Framework 2 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 25 / 46
  • 26. Setup inicial ZF2TestApp/public/.htaccess CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 26 / 46
  • 27. Setup inicial ZF2TestApp/public/index.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 27 / 46
  • 28. Setup inicial ZF2TestApp/init_autoloader.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 28 / 46
  • 29. Setup inicial ZF2TestApp/config/application.config.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 29 / 46
  • 30. Setup inicial ZF2TestApp/module/Application/Module.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 30 / 46
  • 31. Setup inicial ZF2TestApp/module/Application/config/module.config.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 31 / 46
  • 32. Setup inicial ZF2TestApp/config/autoload/global.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 32 / 46
  • 33. Setup inicial ZF2TestApp/config/autoload/local.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 33 / 46
  • 34. Models ZF2TestApp/module/Application/src/Application/Model/Produto.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 34 / 46
  • 35. Models ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 35 / 46
  • 36. Models – CRUD ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 36 / 46
  • 37. Models – CRUD ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 37 / 46
  • 38. Models – CRUD ZF2TestApp/module/Application/src/Application/Model/ProdutoTable.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 38 / 46
  • 39. Controllers - CRUD ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 39 / 46
  • 40. Controllers - CRUD ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 40 / 46
  • 41. Controllers - CRUD ZF2TestApp/module/Application/src/Application/Controller/ProdutoController.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 41 / 46
  • 42. Views ZF2TestApp/module/Application/view/application/produto/index.phtml CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 42 / 46
  • 43. CRUD – Setup adicional ZF2TestApp/module/Application/config/module.config.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 43 / 46
  • 44. CRUD – Setup adicional ZF2TestApp/module/Application/Module.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 44 / 46
  • 45. Além disso... Zend Authentication Ldap Cache Log Console Mail Crypt PermissionsAcl EventManager Validator Form I8n (...) CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 45 / 46
  • 46. Obrigado! ? Dúvidas? ↓ Críticas? ↑ Elogios?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 4/16/13 - 46 / 46

Notas del editor

  1. O diretório vendor se encontra aqui porque com ZF2 você pode ter módulos inteiros dentro de vendor. Permite a reutilização de módulos entre aplicações diferentes, por exemplo.
  2. O diretório vendor se encontra aqui porque com ZF2 você pode ter módulos inteiros dentro de vendor. Permite a reutilização de módulos entre aplicações diferentes, por exemplo.
  3. O diretório vendor se encontra aqui porque com ZF2 você pode ter módulos inteiros dentro de vendor. Permite a reutilização de módulos entre aplicações diferentes, por exemplo.
  4. O diretório vendor se encontra aqui porque com ZF2 você pode ter módulos inteiros dentro de vendor. Permite a reutilização de módulos entre aplicações diferentes, por exemplo.