SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
Desmistificando o
   Framework da Zend
       2.PHP Maranhão - São Luís - MA
              Fevereiro-2009

Po r Dom ingo s Te ruel
Agenda
Apresentação
O Zend Framework
Primeiros passos
Quickstart
Modelos

Camada de serviços (service layers)
Autenticação e Autorização
Zend_Form
Plugins

Controllers
Visão e Layouts
O Palestrante
Tecnólogo em Processamento de Dados especialista em
interfaces de sistemas

Atua no desenvolvimento e implementação de sistemas focado
em software livre
Trabalha com PHP desde 1999

Analista de software de ITI em LigthComm Tecnologia e
Serviços
Consultor em tecnologias móveis (BlackBerry)

Membro ativo das comunidades: PHP-MG, PHP-SC, PHP-SP,
ZF-BRASIL, WP-Brasil
Vamos nos localizar?



O que é o um Framework?
Contextualização



Um framework completo?
Contextualização



Um biblioteca de componentes?
Contextualização



Ambos?
O Zend Framework

Prover um framework de alta qualidade para o
de desenvolvimento de aplicações web

Seguindo o espírito PHP, o ZF dispões de
poderosas funcionalidades que podem ser
facilmente implementadas pelos
desenvolvedores, com foco nos desafios da
construção de uma aplicação moderna e segura.
Visão Geral
Framework “Self-service”, use somente o necessário
para sua aplicação;
Tenha liberdade para integrar com outras
ferramentas/frameworks;
Fracamente acoplado;

PHP 5;
Incorpora tendências da web moderna
(webservices, ajax, xml, etc);
Visão Geral

Acordo de licença requerido para aqueles que
querem contribuir com código, atualizações,
documentações, etc;

Está sob a licença new BSD;

Certificação Oficial (Zend Certified Engenier -
Zend Framework);

Ativamente mantindo pela Zend e pela
comunidade
Visão Geral

Você confia em algo sem documentação?

 Documentação

 Estabilidade

 Todos componentes rigorosamente testados

 Todos componentes devem estar
 documentados pelos desenvolvedores com caso
 de uso
Em Resumo
Simplicidade

Toda parte dos bits, está desenvolvida, testada e
documentada

Possui componentes para a maioria das atividades
rotineiras do desenvolvimento web

Projeto Moderno, Orientação Objeto, Design Patterns

Completa documentação e de fácil acesso

Foco na regra de negócio
Em Resumo
É um framework e não só um conjunto de
componentes;

“Cola”, para construção de aplicações;

Alta Produtividade;

Use somente o que precisar, mas lembre-se

Ele sempre será distribuído em sua totalidade e ainda

Possui integração com outras ferramentas (pear, dojo,
jquery, smarty, etc)
Por onde eu começo?

 http://framework.zend.com
QuickStart



Zend_Tool

 Como começar a usa-lo e amar o Zend_Tool
QuickStart

localize o utilitário zf

  Em bin/zf.sh ou bin/zf.bat (Dependendo do seu SO)

  Adicione em seu Path o diretório bin da instalação
  do ZF ou crie um alias

    alias zf=/caminho/para/zf/bin/zf.sh

    Ou ainda use a PEAR

       pear.zfcampus.org PEAR Channel
Crie um projeto


#unix
% zf.zh create project quickstart

#dos/windows
C:> zf.bat create project quickstart
Adicione o ZF ao projeto


Link simbólico

 ln -s /caminho/ZendFramework/library

Ou copie

 copy -R /caminho/ZendFramework/library
Configure seu virtual host
E a mágica é feita
Estrutura de diretórios
O Arquivo Bootstrap
Configure sua aplicação
O controlador padrão
O Controlador de erros
A View
A Error View
O .htaccess
index.php (O Ambiente)
O Modelo



Ou, “O desenvolvedor desenvolve suas classes de
acordo da necessidade”
O Modelo


Ok! Não existe um Zend_Model



ENTÃO NÃO PERGUNTE MAIS! OK?
O Modelo

Não amarre seus modelos ao acesso a dados

 Torna os testes mais difíceis

 Para usar cache ou SOA, a refatoração pode ser
 mais difícil;

 Re-estruturar o banco de dados pode se
 quebrar facilmente
O Modelo



O modelo nada mais são que suas classes;
O Modelo
O Modelo
O Modelo



Modelos normalmente são responsáveis por
estados, metadados, condições...
O Modelo
O Modelo
Persista seus modelos

Defina seu banco de dados;

Fale para sua aplicação sobre seu banco de dados
O Modelo
O Modelo
Ainda sobre o Modelo
Zend_Db_Table - O Gateway

 O Modelo Entidade Relacional para o Zend_Db
Ainda sobre o Modelo
Zend_Db_Table

 Relacionamentos
Uma nota sobre dados



Dados !== Banco de Dados
Que mais
Sobre nomes e auto-carregamento

Sempre adote a técnica de prefixar seus
desenvolvimentos
Dica!
Recursos também devem ser informados ao
auto-carregador!
Dica!
Como usar a estrutura de diretórios com o auto-
carregador
Vamos falar sobre camadas
As aplicações em geral, tem muitas camadas!
Vamos falar sobre camadas
Autenticação e Autorização
Autenticação é a ação de verificar que alguém é
quem diz ser!

Autorização é a ação de determinar se alguém
pode acessar ou requerer um dado recurso.
Autenticação e Autorização
Zend_Authenticate_Adapter

Zend_Acl e Zend_Acl_Role
Uma palavrinha sobre
         Plugins
Agregue prefixos = define os caminhos
Zend_Validade => Zend/Validate

Use suas classes sem os prefixos
$class = $loader->load(“StringTrim”);
//Zend_Validate_StringTrim

Plugins podem ser utilizados em muitos
componentes (Zend_BootStrap, Zend_View,
Zend_Amf_Server, ...)
Exemplo
Agora vem os controladores



Controladores (“roteadores”)
Controladores
É quem realmente trabalha!

 Em outras palavras:

   Os controladores, recebe a requisição, roteia,
   chamada para controladores de ação, pos-
   requisição, envia retorno.
Compõe o controlador
Zend_Controller_Front

Zend_Controller_Plugin

Zend_Controller_Router

Zend_Controller_Dispatcher

Zend_Controller_Action_Helper

...
Controladores
Usando o Controlador
Uma classe “nomeControlador”Controller
Não esqueça do prefixo da app
Foo_BarController

 Atenção ao detalhe:
 FooBarController na url é foo-bar!

Métodos de ações

 “minhaAcao”Action()
E mais controlador
Detalhes do controlador

 $view é a propriedade utilizada pelo objeto
 para acessar os recursos disponibilizados pelo
 controlador

 getRequest e getResponse te da o poder de
 acessar dados do ambiente da aplicação
 (request/response)
Mais controlador
viewRenderer

 Injeta os objetos da aplicação para acesso das
 views, redenrizado no postDispatch()

 Resolução simples da viewscript

   <controller>/<action>.phtml
Criando um controlador com
          zf-tool
Views
PHP como linguagem de templates

 Zend_View

 Variáveis em views são objetos

 “$this” é um objeto de view
Views Helpers
HtmlList
HtmlFlash

HtmlObject
Json

Navigation

PaginationNavigator
Translate

Url
View Helpers



Placeholder helps
Uma palavrinha sobre
       Zend_Form
Sobre Decorators
 Tipicamente “Decorators” é um wrap funcional de
 um objeto que te da poder para modificar seu
 estado
 Alternativa um “decorator” pode ser utilizado
 para criar uma representação de um objeto

 No Zend_Form, “decorator” é utilizado como
 metados dos formulários e elementos para
 representação destes
Sobre Decorators
Sobre Zend_Form
Decorators são plugins

Podem ser utilizados isoladamente

Overloading de decorators existentes
Sobre Zend_Form
Helpers de Zend_Form

 FormButtons

 FormChekBoxes

 FormInputs

 FormSelects

 FormFile
Layout
Zend_Layout implementa dois patterns:

 CompositeView

 TwoStepView

Internamente implementamos um front-
controller com seus plugins, actions, helpers,
views
Layout
Zend_Layout
          recomendações
Seus views scripts devem ser concisos!

Trabalhe com seu layout a partir das views e nao
de seus controllers

Use o conceito de placeholder sempre que
possível

Configure seu layout em seu arquivo bootstrap
Zend_Layout
recomendações
Conclusões e recomendações
Foque seu tempo de desenvolvimento no
domínio do seu modelo e no “service layers”

Use os componentes do Zend Framework com
sabedoria

Concentre seus esforços na camada de negócios
no topo de seu trabalho

Leia a documentação, contribua, reporte bugs...
Perguntas?



????????????
Obrigado!


http://meadiciona.com/mingomax

http://www.twitter.com/mingomax

fale@dteruel.com.br

Más contenido relacionado

La actualidad más candente

CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
elliando dias
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
Rangel Javier
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
Emerson Soares
 

La actualidad más candente (20)

Cdi conceitos
Cdi conceitosCdi conceitos
Cdi conceitos
 
Palestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo FederalPalestra Zend Framework CISL 2012 - ZF no Governo Federal
Palestra Zend Framework CISL 2012 - ZF no Governo Federal
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
 
Certificação Zend Framework
Certificação Zend FrameworkCertificação Zend Framework
Certificação Zend Framework
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon Framework
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Seu framework é melhor pra quê?
Seu framework é melhor pra quê?Seu framework é melhor pra quê?
Seu framework é melhor pra quê?
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Curso treinamento automação de testes com selenium
Curso treinamento automação de testes com seleniumCurso treinamento automação de testes com selenium
Curso treinamento automação de testes com selenium
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Arquitetura do Framework Spring
Arquitetura do Framework SpringArquitetura do Framework Spring
Arquitetura do Framework Spring
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
 
J boss seam
J boss seamJ boss seam
J boss seam
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 

Destacado

Destacado (6)

Proteja sua aplicação com o zend framework 2
Proteja sua aplicação com o zend framework 2Proteja sua aplicação com o zend framework 2
Proteja sua aplicação com o zend framework 2
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 

Similar a Desmistificando o Framework da Zend

CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
Grupo Treinar
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 

Similar a Desmistificando o Framework da Zend (20)

Palestra Zend Framework no Governo Federal
Palestra Zend Framework  no Governo FederalPalestra Zend Framework  no Governo Federal
Palestra Zend Framework no Governo Federal
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend framework
 
Framework PHP Zend e MVC
Framework PHP Zend e MVCFramework PHP Zend e MVC
Framework PHP Zend e MVC
 
Apostila Zend Framework
Apostila Zend FrameworkApostila Zend Framework
Apostila Zend Framework
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Palestra
PalestraPalestra
Palestra
 
O que esperar do Zend Framework 2
O que esperar do Zend Framework 2O que esperar do Zend Framework 2
O que esperar do Zend Framework 2
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Estrutura do Projeto
Estrutura do ProjetoEstrutura do Projeto
Estrutura do Projeto
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Gestão automática de configuração usando puppet
Gestão automática de configuração usando puppetGestão automática de configuração usando puppet
Gestão automática de configuração usando puppet
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 

Más de Domingos Teruel

Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 

Más de Domingos Teruel (10)

Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 
Por dentro do Projeto openSUSE
Por dentro do Projeto openSUSEPor dentro do Projeto openSUSE
Por dentro do Projeto openSUSE
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDD
 
Zend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versãoZend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versão
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3
 
Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface
Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User InterfaceDesenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface
Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface
 
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISISDesenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS
 
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User InterfaceDesenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
 

Último

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Desmistificando o Framework da Zend