Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec



Documentos relacionados
Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Google Android para Tablets

Wilson Moraes Góes. Novatec

Desenvolvendo Websites com PHP

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Ricardo Lino Olonca. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Distribuidor de Mobilidade GUIA OUTSOURCING

PHP - Orientação a Objeto MVC. Éderson T. Szlachta {Tecnólogo em Análise e Desenv. de Sistemas} - edersonszlachta@gmail.com

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Zend. Framework. Flávio Gomes da Silva Lisboa. Novatec. Desenvolvendo em PHP 5 orientado a objetos com MVC

Desenvolvimento de Grandes Aplicações Web

Planejando o aplicativo

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.

Processos Técnicos - Aulas 4 e 5

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Pete Goodliffe. Novatec

Editor: Rubens Prates Revisão gramatical: Patrizia Zagni Capa: Victor Bittow Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata

Service Desk Corporativo

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Fábrica de Software 29/04/2015

Projeto de Arquitetura

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

As Leis Fundamentais do Projeto de Software

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Figura 1 - Arquitetura multi-camadas do SIE

Desenvolvendo Websites com PHP

Documento de Arquitetura

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Prototype, um Design Patterns de Criação

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Engenharia de Software III

Desenvolvendo Websites com PHP

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

#10 PRODUZIR CONTEÚDO SUPER DICAS ATRATIVO DE PARA COMEÇAR A

4 O Workflow e a Máquina de Regras

Padrões de projeto 1

O papel do CRM no sucesso comercial

Freelapro. Título: Como o Freelancer pode transformar a sua especialidade em um produto digital ganhando assim escala e ganhando mais tempo

Autor: Marcelo Maia

Jonathan Stark Brian Jepson

MVC e Camadas - Fragmental Bliki

2ª EDIÇÃO. André Milani. Novatec

UFG - Instituto de Informática

Sistemas Distribuídos

Os desafios do Bradesco nas redes sociais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Ademir C. Gabardo. Novatec

Estudo de Caso. Cliente: Rafael Marques. Coach: Rodrigo Santiago. Duração do processo: 12 meses

Wilson Moraes Góes. Novatec

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Novatec Editora Ltda. [2013]. Todos os direitos reservados e protegidos pela Lei de 19/02/1998. É proibida a reprodução desta obra, mesmo

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Introdução à Computação


PLANEJAMENTO FINANCEIRO PESSOAL O GUIA PARA COMEÇAR A TER SUCESSO NAS FINANÇAS

Participação Critérios de participação - Elegibilidade Procedimento para participar da chamada: Número de propostas/aplicações

Aspectos técnicos do desenvolvimento baseado em componentes

Pesquisa Etnográfica

edirectory Plataforma ios / Android

Camila Porto. Novatec

Extração de Requisitos

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Paulo Strelczuk. Novatec

COMO FAZER A TRANSIÇÃO

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Introdução à Engenharia de Software

Padrões. Projeto (Design) de Software

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

NO ABRIR DA MINHA BOCA (EFÉSIOS 6:19) USO DO POWERPOINT

Feature-Driven Development

Projeto Você pede, eu registro.

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Governança de TI. ITIL v.2&3. parte 1

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Luiz Carlos Querino Filho

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

INTERNET HOST CONNECTOR

Índice. Introdução 2. Quais funcionalidades uma boa plataforma de EAD deve ter? 4. Quais são as vantagens de ter uma plataforma EAD?

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Orientação a Objetos

Anexo I Formulário para Proposta

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Transcrição:

Criando Aplicações PHP com Zend e Dojo Flávio Gomes da Silva Lisboa Novatec

Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Revisão gramatical: Giacomo Leone Neto Capa: Victor Bittow Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-306-2 Histórico de impressões: Novembro/2012 Segunda edição Maio/2010 Primeira edição (ISBN: 978-85-7522-235-5) Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Lisboa, Flávio Gomes da Silva Criando aplicações PHP com Zend e Dojo / Flávio Gomes da Silva Lisboa. -- 2. ed. rev. e ampl. -- São Paulo : Novatec Editora, 2013. ISBN 978-85-7522-306-2 1. Aplicativos - Software - Desenvolvimento 2. Framework (Programa de computador) 3. HTML (Document markup language) 4. PHP (Linguagem de programação para computadores) 5. Web sites - Desenvolvimento 6. Zend Framework (Programa de computador) I. Título. 10-05021 CDD-005.12 Índices para catálogo sistemático: 1. Frameworks para desenvolvimento em PHP : Ciências da computação 005.12 MP20121123

capítulo 1 Introdução A perplexidade é o início do conhecimento. Kahlil Gibran PHP não é uma linguagem para qualquer um. Ela é para mentes que se abrem para grandes possibilidades. PHP não foi feita para quem não gosta de pensar. Embora um principiante consiga fazer rapidamente alguma coisa funcional com PHP, é preciso um profissional qualificado para extrair dessa ferramenta todo o seu potencial. Não basta dar um sabre de luz para alguém e imaginar que ela vai se tornar um jedi. Assim também não basta entregar um interpretador PHP nas mãos de um sobrinho e imaginar que ele vai construir uma aplicação corporativa de alta qualidade. Ele pode até fazer alguma coisa que funcione, mas ela vai ser como a armadura que Tony Stark, o Homem de Ferro, criou quando era prisioneiro dos Cinco Anéis no Afeganistão: após o primeiro voo, vai se espatifar no chão. Você não assistiu ao filme Homem de Ferro, com Robert Downey Junior? Bem, isso é mau. Em primeiro lugar porque não vai compreender a analogia. Em segundo, porque perdeu uma grande oportunidade de aprender duas lições, uma sobre produção em condições de trabalho ruins e outra sobre aperfeiçoamento de projeto, que são coisas que interessam a qualquer atividade produtiva, incluindo a engenharia de software. E isso inclusive independe da linguagem de programação utilizada. Abra a sua mente. Este livro não se chama Criando Aplicações PHP de qualquer jeito. Você deve terminar de lê-lo aprendendo a programar de 17

18 Criando Aplicações PHP com Zend e Dojo uma forma melhor. Não para que seu código fique apenas bonito, mas para que você se torne mais produtivo e o trabalho de manutenção de seu software não se torne um fardo. Você gasta tempo mantendo software mal escrito. E tempo é dinheiro. Vamos fazer a seguir uma pequena viagem partindo do PHP e alcançando o Zend Framework. Para que isso? Para que fique mais claro por que é necessário usar um framework e por que deve ser o Zend Framework. 1.1 PHP PHP é uma linguagem de programação de tipagem fraca e dinâmica, compilada em tempo de execução e utilizada geralmente para construir aplicações web. Foi criada em 1994 pelo dinamarquês Rasmus Lerdorf, que estava insatisfeito com as tecnologias disponíveis na época para aplicações web (ou melhor, com a falta delas). Rasmus abriu o código-fonte do interpretador que havia criado em 1995 e a partir daí uma solução feita para um problema pessoal se transformou em um dos mais utilizados softwares livres do planeta. Hoje PHP é utilizado por grandes empresas, como Facebook e Yahoo!, e por grandes projetos de software, como Drupal, Joomla, Moodle e Zabbix. Segundo pesquisa do site BuiltWith Trends 1, de 29/11/2011, feito com um milhão de sites, PHP está presente em mais de um terço dos servidores web. PHP é uma linguagem multiparadigma e bastante concisa. De acordo com Gutmans et alli (2005, p. 9), PHP toma um pouco de sua sintaxe empresta de outras linguagens como C, shell, Perl e até mesmo Java. É realmente uma linguagem híbrida tomando as melhores características de outras linguagens e criando uma linguagem de script fácil de usar e poderosa. Sebesta (2000, p. 33), afirma que o custo final de uma linguagem de programação é uma função de muitas de suas características. Ele cita sete fatores que influem no custo de utilizar uma determinada linguagem: custo do treinamento dos programadores, custo da capacidade de escrita, custo de compilação, custo de execução dos programas, custo do sistema de implementação e custo da má confiabilidade. 1 http://trends.builtwith.com/framework

Capítulo 1 Introdução 19 Com relação a isso, PHP tem um custo mínimo para desenvolvimento. Em uma de suas apresentações, Rasmus Lerdorf (2011), o criador do PHP, declara que o PHP é uma tecnologia vencedora simplesmente por três motivos: ele escala, é fácil de aprender e de gerenciar. PHP serve, segundo ele, para fazer desde um simples formulário web no fim de semana até sites que atendem a grandes audiências, como Facebook e Yahoo!. Uma forte característica de PHP é que ela abraça a arquitetura da web, em vez de lutar contra ela. PHP também é flexível o bastante para servir a diversos propósitos, sendo uma tecnologia cujo uso permeia tanto as áreas de desenvolvimento quanto de infraestrutura de sistemas, pois pode não somente ser usada para construção de aplicações como também para automação de tarefas. 1.2 Arquitetura de software Este livro trata de construção de software. A construção de software, segundo McConnell (2005, p. 44) é uma parte extensa do desenvolvimento de software que, dependendo do tamanho do projeto, toma de 30% a 80% do tempo total. McConnell (2005, p. 45) ainda acrescenta que a construção é a atividade central no desenvolvimento de software e que o produto da construção o código-fonte é a única descrição precisa do software. A situação, segundo ele é mais crítica, pois das atividades que fazem parte do desenvolvimento de software, a construção é a única que será, com certeza, realizada. Quando se percebeu que o software poderia ser oferecido ao mercado para satisfazer desejos e necessidades, ele tornou-se, na acepção econômica do termo, um produto. Ao tornar-se um bem de consumo, embora sendo intangível, o software passou a ser tratado como um bem material. E bens materiais podem ser criados, aperfeiçoados ou implementados por meio de engenharia. Surgiu então a engenharia de software. A engenharia de software aplica tecnologias e práticas de gerência de projetos para especificar, desenvolver e manter sistemas de software. A engenharia de software foca o processo, como o software é feito. Ele lida com o problema de como pessoas conseguirão criar um software utilizando recursos e tempo limitados.

20 Criando Aplicações PHP com Zend e Dojo Dentro desse processo, a estrutura assume uma grande importância. E segundo Coplien (2011, p. 2), a arquitetura é a essência da estrutura. De acordo com McConnell (2005, p. 77), a arquitetura é a etapa de alto nível de software, é a estrutura que irá acomodar as partes mais detalhadas do design. Fowler (2006, p. 24), por sua vez, afirma que a arquitetura é subjetiva, uma compreensão do projeto de um sistema compartilhada pelos desenvolvedores experientes em um projeto. Fowler explica que esta compreensão compartilhada frequentemente se apresenta na forma dos componentes mais importantes do sistema e de como eles interagem. Aqui temos dois elementos relacionados ao assunto deste livro: experiência e componentes. Zend Framework tem uma biblioteca de componentes reutilizáveis, que encapsula a experiência de grandes desenvolvedores PHP. Zend Framework ajuda você a projetar uma boa arquitetura para sua aplicação PHP. Segundo McConnell (2005, p. 77), uma boa arquitetura facilita a construção. Já uma arquitetura pobre torna a construção praticamente impossível. 1.3 Orientação a objetos Um provérbio árabe diz o seguinte: Tudo o que acontece uma vez pode nunca mais acontecer, mas tudo o que acontece duas vezes, acontecerá certamente uma terceira. Mas com software ocorre algo diferente. Basta um pedaço de código vir ao conhecimento de outra pessoa além daquela que o implementou originalmente para que ele seja replicado. E a replicação em software é muito fácil, o que faz com que blocos de código-fonte se transformem em verdadeiras pragas, que se proliferam de forma desordenada, e, assim como suas correspondentes biológicas, podem causar grandes danos. O reaproveitamento de uma implementação de software não é algo ruim. O problema reside na forma em que ele é feito. Os paradigmas de programação evoluíram de modo a tratar, entre outras coisas, do reaproveitamento, do reúso de componentes de software. Na definição da Wikipédia para paradigma procedural, por exemplo, encontramos o benefício da habilidade de reutilizar o mesmo código em diferentes lugares no programa sem copiá-lo. A reusabilidade, segundo McConnell (2005, p. 498), é uma característica interna da qualidade do software que indica até que ponto e com que

Capítulo 1 Introdução 21 facilidade você pode usar partes de um sistema em outros sistemas. Aqui encontramos um ponto de ligação com a questão da arquitetura. Um problema recorrente possivelmente deve ter sido tratado por alguém. Nem sempre é preciso implementar a solução, mas procurar reutilizar uma solução. Se essa solução for compartilhada, fica muito mais fácil reaproveitar a experiência dos que se defrontaram com o problema pela primeira vez, ou dos que o resolveram eficazmente pela primeira vez. Ao falar de arquitetura, falamos sobre estrutura. E a estrutura é a forma pela qual alguma coisa está organizada. E segundo Coplien (2011, p. 4), a orientação a objetos é um modo de falar sobre a forma. Mais especificamente, um modo de falar sobre o reúso de partes de software por meio de um mecanismo chamado herança. Além do reúso, Sweat (2005, p. 17) afirma que a orientação a objetos traz como benefícios a robustez, o encapsulamento, o polimorfismo e a extensibilidade. A robustez, para o software, é a capacidade de manter o desempenho esperado mesmo com variações de ambiente. Essa característica está ligada à escalabilidade, que, de acordo com Fowler (2006, p. 30), é uma medida de como o acréscimo de recursos ( ) afeta o desempenho. O encapsulamento deixa o software mais flexível, fácil de modificar e de criar novas implementações. O produto ideal de um encapsulamento é o componente de software, um bloco complexo de código-fonte que contém um conjunto completo de funcionalidades, que podem ser utilizadas por várias aplicações diferentes sem que seja necessário saber como o componente as implementa. O polimorfismo permite que vários tipos de dados (classes, para ser mais exato) sejam tratados de forma homogênea. Você consegue generalizar operações e tratar conjuntos em vez de unidades isoladas de implementação. O código fica mais conciso, mais claro e mais fácil de ser mantido. A extensibilidade refere-se à facilidade de agregar novas funcionalidades. Isso é muito importante, pois McConnell (2007, p. 73) diz que requisitos estáveis são o Santo Graal do desenvolvimento de software. A regra é que os requisitos irão mudar, antes, durante e depois da construção do software. E como as funcionalidades advêm dos requisitos, é melhor tornar fácil a alteração e inclusão de funcionalidades.

22 Criando Aplicações PHP com Zend e Dojo 1.4 Padrões de projeto Na PHP Conference Brasil 2011, o palestrante Hélio Costa e Silva proferiu uma palestra (doh!) intitulada Definir classe não é programar com orientação a objetos. É um título interessante, porque toca em uma questão séria com relação à programação orientada a objetos: não é fácil utilizar seus recursos da forma mais adequada. Você pode com muita facilidade criar um sistema cheio de classes que funcionam apenas como meros agrupamentos de funções, sem uma clara divisão de interesses e responsabilidades. Acredito que você não queira ser um mero implementador de casos de uso, que apenas codifica diagramas de classe, sequência e atividade, sem pensar na melhor forma de resolver os problemas. Você deve querer ser mais que um codificador de programas, deve almejar ser um arquiteto de software, alguém que pensa na estrutura de forma a conciliar na solução as necessidades do cliente com os desejos dos programadores. Dispondo tão somente do conhecimento da teoria da orientação a objetos, você está como o menino Aang, o Avatar do filme O Último Mestre do Ar (baseado, por sua vez, em uma série animada). Aang tem o potencial de dominar os quatro elementos (ar, água, terra e fogo). Só que a dominação plena de cada um deles leva quase uma vida inteira, e ele tem poucos meses para aprender todas. Da mesma forma, você precisa construir aplicações com os benefícios que a orientação a objetos diz proporcionar, mas não tem como viver a experiência de projetos anteriores em poucos dias. Mas se você não tem tempo para ganhar experiência na prática, pode assimilar a experiência daqueles que já a tiveram. Você pode basear suas decisões em soluções reutilizáveis, que já foram experimentadas várias vezes: os padrões de projeto. De acordo com Sweat (2005, p. 18), o termo padrão de projeto nasceu no campo da arquitetura. Não a arquitetura de software e sim a mais tradicionalmente conhecida, aquela que cuida de edificações. O arquiteto Christopher Alexander publicou em 1977 um livro intitulado A Pattern Language: Towns/Building/Construction (Uma Linguagem de Padrões: Cidades/Prédio/Construção). Nessa obra ele descreve questões comuns de projeto arquitetural e explica como novos projetos podem ser criados pela agregação de padrões bem conhecidos. As ideias de Alexander, concebidas para edificações e cidades, foram traduzidas para o desenvolvimento de

Capítulo 1 Introdução 23 software, porque se encaixavam perfeitamente na construção de soluções a partir de componentes previamente existentes. Fowler (2006, p. 31), afirma que um elemento-chave dos padrões é que eles estão enraizados na prática. De acordo com ele, você descobre padrões vendo o que as pessoas fazem, observando as coisas que funcionam e então buscando a essência da solução. Estamos falando novamente em experiência. Ou melhor, em utilizar o conhecimento obtido com experiências anteriores. Gutmans et alli (2005, p. 59), afirma que os padrões de projeto são problemas que já foram abordados pela comunidade desenvolvedora de software e receberam soluções aceitas geralmente. Segundo eles, a vantagem de conhecer e usar esses padrões é não somente economizar tempo, em vez de reinventar a roda, mas também dar aos desenvolvedores uma linguagem comum para design de software. Ou seja, os padrões de projeto também servem para melhorar a comunicação entre os desenvolvedores, pois resumem em um nome curto várias informações que levariam tempo para serem transmitidas: qual o problema, qual o núcleo da solução, quando usá-lo e quais as vantagens e desvantagens. Ocorre, porém, que os padrões de projeto são apenas descrições da essência de uma solução. Elas nada têm a ver com implementação em uma determinada linguagem de programação. Sendo assim, você tem de codificar os padrões. Além disso, cada padrão resolve um problema bem definido e localizado, e um sistema de informação pode ter muitos problemas não claramente definidos e bastante complexos. Isso exige a combinação de vários padrões de projeto para constituir uma solução mais complexa. É aí que entram os frameworks. Gamma (in Venners, 2011) afirma que projetar software orientado a objetos é difícil e projetar software orientado a objetos reusável é mais difícil ainda. Gamma diz que os frameworks, que nada mais são que combinações de padrões de projeto, estão no mais alto nível de reúso. Mas ele alerta que isso não é motivo para você começar a projetar o seu framework do zero, pois, segundo ele, construir um framework é um alto risco e um investimento significativo. Então evite fazer um framework, se você puder reaproveitar um existente. É aqui que entra o Zend Framework.

24 Criando Aplicações PHP com Zend e Dojo 1.5 Zend Framework Zend Framework é um software livre e aberto, uma biblioteca de componentes PHP para desenvolvimento de aplicações de forma rápida e simplificada. De acordo com Allen (2009, p. 5), Zend Framework (ZF) é um framework bem abrangente e de baixo acoplamento, que contém tudo o que é necessário para o desenvolvimento de sua aplicação. Vamos mostrar esse tudo adiante, dividindo os componentes do framework em oito categorias. 1.5.1 Modelo-Visão-Controlador (MVC) Os componentes a seguir fazem uso do padrão de projeto MVC, um padrão de arquitetura que serve perfeitamente para aplicações web (que se originou com a frustração de Trygve Reenskaug com as linguagens Simula e Smalltalk), o qual permite que desenvolvedores e web designers separem suas preocupações e práticas, fazendo com que a implementação de código e o projeto fiquem facilmente e claramente separados. Não há mais confusão ou necessidade de ambas as práticas se configurarem na mesma pessoa. Zend_Application, Zend_Application_Bootstrap, Zend_Application_Module, Zend_ Application_Resource Zend_Controller_Front, Zend_Controller_Action, Zend_Controller_Dispatcher, Zend_ Controller_Plugin, Zend_Controller_Router Zend_Form Zend_Layout, Zend_View, Zend_View_Filter, Zend_View_Helper 1.5.2 Desenvolvimento Rápido de Aplicações (RAD) Uma das mais tediosas tarefas em qualquer projeto é a configuração inicial da aplicação. Zend_Tool fornece uma ferramenta de suporte e um cliente de linha de comando que permite a você gerar sua estrutura de projeto, artefatos MVC e mais. Comece a escrever sua aplicação imediatamente, em vez de manipular sua árvore de diretório. Zend_CodeGenerator Zend_Reflection Zend_Tool_Framework, Zend_Tool_Project

Capítulo 1 Introdução 25 1.5.3 Banco de dados O ZF faz uso das melhores práticas de programação de banco de dados, por meio de padrões arquiteturais de fontes de dados. Ele fornece adaptadores de dados para a maioria dos sistemas gerenciadores de bancos de dados, os quais abstraem todos os detalhes de conexão de modo que você possa construir os modelos de sua aplicação (o domínio de seu negócio) sem se importar com o mecanismo de banco de dados. Zend_Db, Zend_Db_Adapter, Zend_Db_Profiler, Zend_Db_Select, Zend_Db_Table 1.5.4 Internacionalização (i18n) e Localização (l10n) Em uma economia cada vez mais global, localizar sua aplicação para uma cultura e linguagem particulares é imperativo. Fazer isso facilmente, sempre que você esteja pronto para expandir seus mercados, é algo proporcionado com o suporte do Zend Framework para internacionalização. Zend_Currency Zend_Date Zend_Locale Zend_Measure Zend_Translate 1.5.5 Autenticação, autorização e gerenciamento de sessão Virtualmente todas as aplicações web têm algum dado específico do usuário que deve ser customizado, e geralmente protegido do acesso de outros usuários. Os componentes a seguir tornam esse controle rápido e fácil para o desenvolvedor. Zend_Acl Zend_Auth Zend_Session 1.5.6 Web e Web Services Web services são uma parte integral do Zend Framework, e a intenção é que o ZF seja o vínculo para um ecossistema inteiro de Web Services

26 Criando Aplicações PHP com Zend e Dojo e fornecedores de APIs. A Zend Technologies tem firmado parcerias com Google, Microsoft e StrikeIron, e estes têm criado suporte para seus serviços dentro do Zend Framework. Consumo de serviços: Zend_Feed, Zend_Gdata, Zend_Http_Client, Zend_Rest_Client, Zend_Service, Zend_XmlRpc_Client Exposição de serviços: Zend_Amf_Server, Zend_Json_Server, Zend_Server_Definition, Zend_Server_Reflection, Zend_Rest_Server, Zend_Soap_Server, Zend_XmlRpc_Server 1.5.7 E-mail, formatos e busca Aplicações Web 2.0 requerem suporte para Ajax, geração de arquivos PDF, comunicação por e-mail e busca, tudo isso sendo uma parte cada vez mais importante das aplicações web atualmente. O Zend Framework simplifica a vida do desenvolvedor e dá a ele um suporte interno para características essenciais, se não críticas de sua aplicação. Zend_Json Zend_Mail, Zend_Mime Zend_Pdf Zend_Search_Lucene 1.5.8 Núcleo de infraestrutura Zend Framework é uma ampla biblioteca de componentes fracamente acoplados, porém altamente coesos, que suportam muitas das outras características que você pode precisar em uma aplicação web. Desde logging para rastreamento e depuração de sua aplicação em produção, cacheamento para alta performance, filtragem para aplicações mais seguras, até todas as outras peças que tornam a vida do desenvolvedor mais fácil. Zend Framework fornece tudo isso, mais uma vasta comunidade, o suporte e patrocínio de uma grande empresa e um enorme número de desenvolvedores talentosos que sabem como construir aplicações Zend Framework desde o zero. Zend_Cache, Zend_Config, Zend_Console_Getopt, Zend_Debug, Zend_Filter, Zend_Loader, Zend_Loader_Autoloader, Zend_Log, Zend_Memory, Zend_Registry, Zend_Validate, Zend_ Version