desmistificando o framework da zend
Post on 04-Dec-2014
5.673 Views
Preview:
DESCRIPTION
TRANSCRIPT
Por Domingos Teruel
Desmistificando o Framework da Zend
2.PHP Maranhão - São Luís - MAFevereiro-2009
AgendaApresentaçã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)
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/windowsC:> 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 caminhosZend_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”ControllerNão esqueça do prefixo da appFoo_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
top related