You are on page 1of 15

Aplicaes web com PHP 5, MVC e Zend Framework

Flvio Andr Johann Centro Universitrio UNIVATES Lajeado RS Brasil


fajohann@universo.univates.br

Abstract. This article introduces the use of a web development tool for PHP 5, Zend Framework, using an architecture based on 3 layers (MVC). This framework aims to simplify, so reliable, fast and secure, a development environment for PHP 5 web applications, which provides the user greater freedom to concentrate on business rules, as it provides solutions for almost all situations that are common to all web systems. Keywords: Web development, frameworks, MVC architecture, PHP, OO, Zend Framework. Resumo. Este artigo introduz o uso de uma ferramenta de desenvolvimento web para PHP 5, o Zend Framework, utilizando uma arquitetura baseada em 3 camadas (MVC). Este framework tem como objetivo simplificar, de forma confivel, gil e segura, o ambiente de desenvolvimento em PHP 5 para aplicaes web, propiciando ao programador, uma maior liberdade para se concentrar nas regras de negcios, uma vez que dispe de solues para quase todas as situaes que so comuns a todos os sistemas web. Palavras chave: Desenvolvimento web, framework, arquitetura MVC, PHP, orientao a objetos, Zend Framework.

1. Introduo
O uso da internet est cada vez mais presente no cotidiano das pessoas. Milhes de usurios utilizam a rede mundial de computadores para diversos fins, como pesquisas, acessar e-mails, compartilhar informaes em suas redes sociais, fazer negcios, entre outros. Graas a esta expanso da web, grandes empresas como a Microsoft esto deixando de desenvolver softwares apenas para uso em desktops e investindo na criao de aplicaes web. As tecnologias envolvidas no ambiente web evoluem muito rpidas e para quem desenvolvedor de aplicaes para este ramo deve dispor de ferramentas que possibilitem no s rapidez na criao de sistemas, mas como confiabilidade, segurana e uma forma padronizada de programao. Nesse intuito, o presente trabalho visa introduzir o uso de um framework de desenvolvimento, o Zend Framework [ZF, 2011], que baseado em uma linguagem bastante difundida para criao de aplicaes web, o PHP 5, e possibilita a utilizao de uma arquitetura de software, que visa basicamente separar a lgica de negcios da visualizao e chamada de Model-View-Controller (MVC) [Trygve, 2007].

A contextualizao de frameworks, padres de projeto, e da arquitetura MVC ser descrita na Seo 2. A seguir, na Seo 3 apresentado o Zend Framework, mostrando suas principais caractersticas, seu funcionamento, vantagens e desvantagens, bem como o comparativo com outros frameworks de desenvolvimento web. A Seo 4 destinada a mostrar um exemplo de funcionamento do Zend Framework em uma aplicao real, citando suas caractersticas. Por fim, na Seo 5, uma concluso sobre este trabalho, comentando os pontos mais importantes e discutindo o futuro deste framework.

2. Referencial Terico
Nas subsees a seguir, ser abordado conceitualmente o que um framework, uma sntese do que so padres de projeto, bem como uma introduo ao MVC para auxiliar na compreenso do Zend Framework. 2.1 Framework Um framework em programao um conjunto de classes e interfaces escritas em alguma linguagem especfica que tem como objetivo principal auxiliar na resoluo de uma gama de problemas semelhantes, ou seja, seria quase que uma aplicao completa, faltando apenas partes que so peculiares a cada situao. Estas por sua vez, sero implementadas pelo desenvolvedor de sistemas, facilitando e auxiliando o trabalho do mesmo. Um bom framework deve apresentar caractersticas como facilidade de uso, economia de tempo, reusabilidade, segurana e tambm ser flexvel e extensvel. 2.2. Design Patterns (Padres de Projeto) Os padres de projeto surgiram na dcada de 70 e seu idealizador foi Christopher Alexander, um arquiteto, matemtico e urbanista Austraco. Na rea de criao de softwares a ideia dos padres de projeto ter uma situao de problema/soluo, onde cada etapa para chegar devida soluo bem definida, nomeando, abstraindo e identificando pontos principais de uma estrutura de projeto comum para que esta possa ser reutilizvel em outros projetos orientado a objetos. Para que isso seja possvel, tal padro deve ser bem documentado e estudado, auxiliando assim, o desenvolvimento de softwares com menos defeitos e uma manuteno fcil e organizada. 2.3. MVC: ModelView-Controller O MVC consiste em um formato de arquitetura de software, dividido em trs camadas (Model-View-Controller), proposto em 1978 por Trygve Reenskaug que tem como objetivo principal separar a parte das regras de negcios e acesso a dados (Model/ Modelo) da parte visual da aplicao (View/Viso), efetuando as interaes entre os dois atravs de um controlador (Controller/Controle) [Trygve, 2007]. Ao utilizarmos este padro no desenvolvimento de sistemas, juntamente com Orientao a Objetos, podemos tornar nossa aplicao muito mais flexvel, facilitando alteraes na interface, por exemplo, simplificando a manuteno e tambm propiciando o reuso de cdigo.

2.3.1. Model (Modelo) O modelo gerencia o estado da aplicao [Lisboa, 2009], ou seja, responsvel por armazenar, manipular e gerar as informaes que esto no banco de dados, bem como outros aspectos relacionados lgica da aplicao. Toda a parte relacionada regra de negcios da aplicao desenvolvida nessa camada. 2.3.2. View (Viso) A viso, por sua vez tem a responsabilidade de gerenciar a parte visual da aplicao, no se preocupando com as regras de negcios e sim com a visualizao [Trygve, 2007]. Tudo que ns, usurios, vemos quando estamos manipulando um sistema baseado em MVC gerado pela viso. interessante frisar que se torna bastante simples modificar todo leiaute de um site, por exemplo, quando utilizamos esta arquitetura, pois no precisamos nos preocupar com as outras camadas. 2.3.3. Controller (Controle) Esta camada recebe todas as requisies vindas do usurio e as interpreta para depois mape-las para o modelo [Trygve, 2007]. O modelo, por sua vez, efetua aes definidas pelas regras de negcios e retorna uma resposta para o controlador que seleciona uma viso para exibir ao usurio uma resposta a sua requisio. Um controlador determina o fluxo da aplicao, servindo como uma camada intermediria entre o modelo e a visualizao. O modelo de trs camadas (Figura 1.) tornou-se a arquitetura padro para sistemas corporativos com base na Web atualmente.

Figura 1. Modelo em trs camadas (Model-View-Controller) [AJ

DF, 2011].

3. Zend Framework
O Zend Framework, ou ZF, foi um projeto iniciado em 2005 com um propsito: facilitar o desenvolvimento Web, agregando melhores prticas de programao com segurana, confiabilidade e simplicidade, descritos no manual oficial em [ZF, 2011]. Este framework foi implementado em PHP 5 e licenciado como New BSD License (cdigo aberto). Inicialmente desenvolvido por Andi Gutmans e Zeev Suraski, cofundadores da Zend Technologies, empresa que atualmente responsvel pelo PHP 5 e tambm pelo Zend Framework, hoje conta com uma grande comunidade de colaboradores e investidores, incluindo grandes empresas como IBM e Oracle, tornando-o um dos frameworks mais conhecidos e respeitados em PHP.

3.1 Caractersticas O ZF baseado em PHP 100% orientado a objetos, possuindo uma biblioteca de classes fracamente acopladas e adotando a arquitetura MVC. Em sua verso 1.0, possua 36 componentes que auxiliavam nas mais diversas tarefas como manipulao de banco de dados, validao de formulrios, criao de logs e debugs, internacionalizao, entre outros. Em sua verso atual, a 1.11.5, conta com 70 componentes, abrangendo uma mdia de mais de 80% das necessidades comuns maioria dos sistemas web e permitindo a personalizao para os casos especficos [ZF, 2011]. Graas a sua arquitetura (Figura 2) flexvel e o baixo acoplamento entre os componentes, podemos us-los separadamente em diferentes aplicaes, mesmo que essa j possua outro framework. Todos os componentes foram amplamente testados tornando o cdigo alm de simples e eficiente, tambm seguro [Lisboa, 2008]. O ZF tambm tem suporte a tendncias atuais da web 2.0 como Web Services, Ajax, indexao de buscas com o Lucene Search, etc. e conta com o apoio de grandes empresas parceiras como a Google, Microsoft e IBM. Sua documentao online possui um manual bem abrangente, guia de referncia para o programador disponvel em 6 idiomas, bem como tutoriais e fruns de discusso envolvendo toda comunidade Zend Framework [ZF, 2011].

Figura 2. Arquitetura do Zend Framework [Pessoa

2008].

3.2. Principais Componentes e Funcionamento Como j dito, o ZF possibilita o uso de seus componentes separadamente, porm, quando combinados, torna-se mais eficaz e poderoso [ZF, 2011]. Este trabalho consiste em introduzir um breve funcionamento do Zend Framework como um todo, utilizando a arquitetura MVC. Todos componentes do ZF esto organizados dentro do diretrio library/Zend, fazendo com que seja simples a incluso de novos componentes atravs de classes ou diretrios de classes PHP. Abaixo (Figura 3) ilustrado o contedo do diretrio library/Zend na verso utilizada neste trabalho do framework (1.11.5).

Figura 3. Estrutura de pastas do diretrio library/Zend.

Quando construirmos sistemas web utilizando este framework, ideal que a library/Zend esteja inserida em um local de fcil acesso pelo fato de que esta ser uma base de classes que sero reutilizadas por vrias aplicaes, centralizando assim a sua manuteno [Lisboa, 2008]. Qualquer novo componente criado ser inserido dentro deste diretrio, sendo logo reconhecido quando o utilizarmos na aplicao. A estrutura de diretrios em um projeto usando o ZF personalizvel (Figura 4).

Figura 4. Exemplo de estrutura de diretrios do Zend Framework [Pessoa,

2008].

A respeito do caminho da URL que ser usado no browser, o ZF utiliza basicamente a seguinte notao:
http://www.siteexemplo.com.br /modulo/controlador/acao http://www.siteexemplo.com.br /controlador/acao/parametro/valor http://www.siteexemplo.com.br /modulo/controlador/acao/valor

Os mdulos podem comunicar-se entre si e para entendermos melhor o funcionamento do Zend Framework utilizando o MVC precisamos conceituar os 3 componentes principais para aplicar esta arquitetura: Zend_Controller, Zend_View e Zend_Model.

3.2.1. Zend_Controller (Camada de Controle) Este componente considerado a parte principal do funcionamento do MVC no Zend Framework. Atravs do Zend_Controller_Front, todas as requisies da aplicao so interceptadas pelo controlador frontal que, atravs de seus mtodos, trata esta informao e despacha para determinada ao, baseado no URL requerido [ZF, 2011]. O Zend_Controller foi construdo de forma bastante extensvel, permitindo a criao de novas classes, plugins ou auxiliadores para aumentar ou manipular a funcionalidade do sistema [Lisboa, 2008]. Quando solicitamos uma requisio via browser, esta passa pelo controlador frontal (Zend_Controller_Front) que implementa 4 mtodos padres que so:
Request: Contm as informaes vindas da requisio. Router: Organiza a rota que esta requisio ir tomar, definindo o mdulo, controlador e ao atual. Dispatcher: Faz o mapeamento da rota e despacha a requisio para as classes controladoras de aes e mtodos. Response: Contm a resposta completa e habilitado para envi-la.

Figura 5. Diagrama de funcionamento do Zend_Controller

[Pessoa, 2008].

A nomenclatura padro da estrutura de diretrios do controlador apresentada na Figura 6. Para exemplificar tomaremos como base que estamos querendo acessar informaes da action listar, vindas do controlador index do mdulo site. Com isso, a URL ficaria http://www.siteexemplo.com.br/site/index/listar. A classe que define o controlador index ter sua sintaxe exibida na Listagem 1:

../site/application/controllers/IndexController.php <?php class Site_IndexController extends Zend_Controller_Action{ public function indexAction{ //Executa alguma ao} public function listarAction{ //Executa alguma ao} } Listagem 1. Classe IndexController.php

As actions nada mais so que mtodos pblicos que executam alguma rotina quando requisitados pelo controlador. Na sua nomenclatura, deve preceder o nome da ao, seguida de Action como listarAction(), indexAction(), salvarAction(), etc. O Zend_Controller_Action tambm promove a integrao com a camada de viso de forma automtica, atravs de um action helper ViewRender. O controlador possui uma propriedade chamada $view que contm objetos que podem ser acessados pela camada de visualizao. Para que possamos visualizar o contedo desta viso, devemos criar dentro do diretrio views/scripts todas as pastas referentes aos controladores e dentro delas, cada mtodo da action ser um arquivo com o seu nome com extenso .phtml (padro). Os view scripts (Figura 6) so renderizados automaticamente durante o evento postDispatch() do controlador e podem receber objetos de viso instanciados nos mtodos de aes de sua classe controladora.

Figura 6. Estrutura bsica dos controllers e views [Pessoa, 2008].

3.2.2. Zend_View (Camada de Viso) O componente Zend_View responsvel pela parte de visualizao das informaes no modelo MVC. Este componente baseado em templates, uma vez que possvel tanto usar scripts de templates em PHP como de outras formas e, inclusive, customizar a camada de viso, atravs da classe Zend_View_Interface [Lisboa, 2008]. nesta camada que o cdigo HTML incrementado, podendo ser usado com o PHP, porm justamente nesse ponto que temos que tomar cuidado, pois como estamos utilizando o MVC, temos que respeitar as regras de fluxo desta arquitetura e entender

que a viso responsvel somente por mostrar resultados. Todas as operaes e lgicas de negcio devem ser implementadas nas camadas de controle e modelo. Em alguns casos necessrio fazer operaes dentro da viso, para isso existem os helpers que so classes que estendem as funcionalidades da Zend_View. Tais helpers, so funes que utilizam parmetros para gerar alguma rotina de forma fcil e organizada [Lisboa, 2008], como menus ou conversor de datas, por exemplo. Para isso criamos um helper com toda a lgica necessria e dentro de cada script da viso que quisermos mostrar tal contedo, apenas o chamamos, sem que seja necessrio reescrever todo cdigo em cada pgina. Nos controladores, podemos criar instncias da classe Zend_View e definirmos objetos para ela com determinado valor, passando este para a viso [Lisboa, 2008]. Este processo ser mais bem ilustrado na Seo 4. Tambm possvel definir uma srie de elementos que podem ser essenciais a camada de visualizao dentre os quais filters (filtros), helper paths (especifica caminhos para as classes auxiliares) e partial helpers que so templates que podem ser chamados em qualquer script de viso e servem basicamente para mostrar contedos que sero repetidos em diversas pginas, centralizando seu cdigo e incorporando atravs de chamadas pela viso [ZF, 2011]. 3.2.3. Zend_Model (Camada de Modelo) Na prtica, no existe um componente chamado Zend_Model para a camada de modelo, como ocorre com o Zend_View e o Zend_Controller pois um modelo pode abranger uma srie de itens como banco de dados, Web Services, Feeds, arquivos de configurao, sistemas de arquivos, etc. Toda a regra de negcios estabelecida em um sistema deve ser implementada na camada de modelo. Um dos mtodos mais utilizados o acesso a banco de dados usando os componentes Zend_Db, Zend_Db_Table, entre outros, que fornecem uma interface simples que permite conectar com diversos tipos de banco de dados relacionais, mapearem tabelas, bem como executar operaes como seleo, insero, alterao e excluso de registros . Tambm possvel buscar linhas de uma tabela que esto relacionadas com outras tabelas, suas dependncias, controle de transao e uma srie de outros mtodos orientados a objetos, extensvel e de fcil manuseio [Lisboa, 2008]. Normalmente quando ocorre uma requisio pelo browser, a camada de controle instancia uma classe do modelo, efetua alguma operao desta classe para responder a esta requisio e renderiza a resposta na camada de viso, efetuando assim o padro MVC (Figura 7).

Figura 7. ModelView-Controller do Zend Framework [Pessoa, 2008].

3.2.4. Outros Componentes O Zend Framework tambm possui outros componentes importantes que so de grande utilidade quando estamos desenvolvendo alguma aplicao. Abaixo, alguns desses componentes sero listados de acordo com [Lisboa, 2008], comentando o principio de cada um. Zend_Acl: Controla a gesto de privilgios e acesso aos recursos da aplicao. Atravs deste componente podemos definir que tipo de usurio pode acessar determinada informao. baseado no ACL (Access Control List), e composto por trs caractersticas principais: Perfil (Role): Perfis criados para determinar a hierarquia de usurios. Ex: Admin, Tcnico, etc. Funcionalidades (Resource): Funes disponveis como incluir, alterar, excluir, entre outros. Permisses (Permissions): Dita as funcionalidades que cada perfil poder acessar. Zend_Auth: API responsvel exclusivamente pela parte de autenticao. Tem a finalidade de verificar por meio de credenciais, se determinada entidade realmente quem deveria ser (identificao). Para que possamos definir se uma entidade, depois de identificada, pode ou no acessar certo contedo, devemos utilizar o Zend_Acl.

Zend_Config: Utiliza propriedades para simplificar e ler dados de configurao das aplicaes. Suporta uma variedade de mtodos de armazenamento de configuraes como, por exemplo, arquivos com extenso .ini, . xml, .php, etc. Zend_Form: Simplifica a criao e manuteno de formulrios web, realizando validaes, filtragens de entrada de dados, ordenao, agrupamentos, entre outros, utilizando componentes auxiliares como Zend_Filter, Zend_Validate e Zend_Filter_Input. Zend_Loader: Serve para carregar arquivos e classes dinamicamente de forma segura. Zend_Registry: Possibilita um armazenamento global para objetos e valores de forma acessvel e disponvel por toda aplicao enquanto a requisio estiver ativa. Zend_Session: Auxilia o gerenciamento de dados de sesso realizados por mltiplas requisies para o mesmo cliente.

3.3. Vantagens
A ideia principal de todo framework de desenvolvimento deixar o programador mais livre para implementar as regras de negcio, promovendo j solues para os detalhes de mais baixo nvel que costumam ser sempre os mesmos [Lisboa, 2008]. Dessa forma, ocorre um aumento de produtividade, padronizao e manuteno, melhorando qualquer projeto como um todo. O Zend Framework possui algumas vantagens que diferem de outros frameworks em PHP. A forma com que ele foi desenvolvido, usando fraco acoplamento entre seus componentes e classes, faz com que possamos utilizar tais componentes de forma independente, fornecendo uma grande flexibilidade, inclusive para criar outro framework estendendo as classes da Zend. Tambm vale ressaltar que o ZF dispe de muitos recursos para implementao de cdigo seguro como autenticao, autorizao, validadores, filtros, segurana de acesso a banco de dados, entre outros [Lisboa, 2008]. A sua filosofia simples, porm objetiva, permite um aprendizado rpido, tornando o custo com treinamentos mais baixos. Outro fator importante que o Zend Framework mantido por uma grande empresa, a Zend Technologies. Como se no bastasse isso, tambm grandes empresas colaboram para a continuidade do projeto como a IBM, Oracle, Microsoft e Google. A Zend Technologies a mantenedora do PHP o que aumenta seus crditos perante a comunidade PHP. Por ser um software livre, no h necessidades de custos de licenciamento para sua utilizao, fator esse que motiva empresas, desenvolvedores e simpatizantes de software livre a adotarem o framework.

3.4. Desvantagens
Embora o Zend Framework possua uma documentao bastante detalhada, esta tambm um pouco complexa, podendo dificultar o entendimento algumas vezes. Tambm ainda no est disponvel a traduo do site oficial contendo toda documentao para o idioma portugus [Lisboa, 2008]. Isso faria com que o framework fosse mais popular aqui no Brasil, auxiliando no seu desenvolvimento.

3.5. Comparativo com outros Frameworks


Nesta Seo ser abortado um quadro comparativo entre cinco frameworks em PHP (Symfony, Prado, CakePHP, CodeIgniter e Zend Framework) que so bastante usados no desenvolvimento de aplicaes e os suportes que os mesmos dispem. Abaixo sero listados os suportes analisados para o comparativo, que foram escolhidos de acordo com as funcionalidades e/ou tecnologias mais utilizadas atualmente.
PHP4 e PHP5: Suporte s linguagens PHP verso 4 e 5. MVC: Possui implementao de Model-View-Controller. Multiple DBs: Suporte a camada de abstrao de banco de dados. ORM: Suporte a Mapeamento Objeto Relacional. DB Objects: Inclui outros objetos para o banco de dados como o padro Table Gateway. Templates: Possui templates engine embutidos. Cache: Suporte a mecanismo de cache. Validation: Componentes e mecanismos de validao. Ajax: Suporte Ajax embutido. Auth Module Possui mdulos para autenticao. Modules Suporte a outros mdulos como PDF, analisador de feeds, entre outros. EDP - Event Driven Programming (Programao Orientada a Eventos).

Figura 8. Anlise comparativa entre frameworks de desenvolvimento PHP [PHPF 2011].

De acordo com a Figura 8, vemos que o Zend Framework possui suporte a maioria dos itens analisados, tornando-o assim um framework bastante completo que tem caractersticas bastante teis ao desenvolvimento web.

4. Relato de um caso
Nesta etapa, ser apresentado um exemplo simples, porm prtico de uma aplicao que utiliza o Zend Framework para criar um ambiente de desenvolvimento em MVC. Primeiramente teremos uma tabela livro que ser armazenada em um banco de dados (Figura 9).

Figura 9. Tabela livro.

A partir desta tabela, criamos um modelo que a representar em nossa aplicao (Listagem 2).
../site/application/models/livroModel.php class LivroModel extends Zend_Db_Table_Abstract{ protected $_name = livro; //Nome da tabela do banco de dados protected $_rowClass = Livro; //Classe que representar cada registro } ../site/application/models/livro.php class Livro extends Zend_Db_Table_Row{ public function save(){ //Persiste o objeto no banco de dados parent::save(); } } Listagem 2. Classes responsveis pelo mapeamento da tabela livro.

Depois de criado as classes para mapear a tabela livro do banco de dados, o prximo passo ser visualizar seu contedo na aplicao. Para isso, criamos um controlador (Listagem 3) que buscar a informao no modelo e a enviar para a camada de viso.
../site/application/controllers/LivroController.php Class Site_LivroController extends Zend_Controller_Action{ public function indexAction(){ $livroModel = new LivroModel();//Instancia a classe LivroModel para persistir o objeto livro $livro = $livroModel->createRow(); $livro->titulo = Dom Casmurro; $livro->autor=Machado de Assis; $livro->ano= 1900; $livro->save(); //Salva o registro na tabela livro do banco de dados $listaLivros = $livroModel->fetchAll(); //Busco todos registros da tabela livro $this->view->livros = $listaLivros; //Associa as informaes do livro para um objeto da viso } } ~ Listagem 3. Classe LivroController.php

A view, por sua vez, responsvel apenas por mostrar a informao gerada no controller (Listagem 4).
../site/application/views/scripts/livro/index.phtml <? If ($this->livros){ //Verifica se existe o objeto livros criado no controller ?> <!tabela contendo os livros --> <h1>Lista de Livros</h1> <table> <tr> <th>Autor</th> <th>Titulo</th> <th>Ano</th> </tr> <?php foreach($this->livros as $key=>$val){ ?> <tr> <td><?php echo $this->escape($val[autor]); ?> </td> <td><?php echo $this->escape($val[titulo]); ?> </td> <td><?php echo $this->escape($val[ano]); ?> </td> </tr> <?}?> </table> <?}else{?> <p>No h livros para serem exibidos.</p> <?}?> Listagem 4. View script index.phtml

Um exemplo real de leiaute utilizando o Zend Framework (Listagem 5) verificado na Figura 10 e foi retirado da prpria pgina oficial da Zend Technologies.
<?=$this->docType(XHTML1_STRICT)?> <html> <head> <?= $this->headTitle() ?> <?= $this->headScript() ?> <?= $this->headStylesheet() ?> </head> <body> [Cdigo presente na figura 1.7] </body> </html> Listagem 5. Exemplo de script de leiaute [ZT, 2011].

Figura 10. Exemplo de leiaute utilizando o Zend Framework [ZT, 2011].

5. Concluso
Neste trabalho foi apresentada uma introduo ao Zend Framework, um conjunto de classes desenvolvidos em PHP, com uma gama de componentes para auxiliar na criao de aplicaes web confiveis, seguras e reunindo as melhores prticas de programao orientada a objetos [ZF, 2011]. Pelo fato de ser um framework com uma filosofia de simplicidade e o baixo acoplamento entre suas classes, possibilita o uso de seus mdulos de forma independente, ou seja, vivel usar apenas os componentes necessrios para auxiliar em determinada tarefa, sem precisar utilizar todos [Lisboa, 2008]. Embora tenha essa flexibilidade, o Zend Framework, quando combinado os componentes, torna-se muito mais poderoso e robusto. Suportando a arquitetura Model-View-Controller (MVC), separamos toda a lgica de negcio da camada de visualizao atravs de um controlador de requisies que gerencia o que ir acontecer. A Zend Technologies, empresa que mantm oficialmente o Zend Framework, e tambm est diretamente relacionada ao desenvolvimento do PHP, aposta forte no crescimento deste framework, bem como a sua padronizao para o desenvolvimento web em PHP. Por ter uma licena baseada na BSD License (cdigo aberto), uma grande comunidade est engajada em melhorar e sustentar o Zend Framework. Isso no inclui

somente desenvolvedores como tambm grandes empresas como a Microsoft, Google e IBM, fato que perpetua sua credibilidade. De acordo com o site oficial do Zend Framework [ZF, 2011], informadas algumas estatsticas de uso do framework dentre elas:
- Mais de 10 milhes de downloads; - Mais de 500 contribuintes; - Mais de 1000 pginas do Guia de Referncia; - Mais de 500 exemplos no Guia de Referncia; - Quase 6 milhes de hits no Google.

Embora a comunidade esteja trabalhando para melhorar cada dia sua documentao, esta ainda carece de uma traduo para o idioma portugus. Em um futuro no muito distante, esperamos por essa melhoria que certamente far com que o Zend Framework seja mais disseminado aqui no Brasil, aumentando ainda mais a sua comunidade e, consequentemente, ajudando a tornar este framework cada vez melhor. Referncias [Lisboa, 2008] LISBOA, F. G. D. S. Zend Framework: Desenvolvendo em PHP 5 orientado a objetos com MVC. 1 ed. So Paulo: Novatec, 2008. 184p. [Lisboa, 2009] LISBOA, F. G. D. S. Zend Framework: Componentes poderosos para PHP. 1 ed. So Paulo: Novatec, 2009. 352p. [ZF, 2011] <http://framework.zend.com/manual/en/>. Zend Framework Manual. Acesso em: 27 mai. 2011. [ZT, 2011] <http://www.zend.com/en/>. Zend Technologies Web Site. Acesso em: 29 mai. 2011. [Trygve, 2007] <http://heim.ifi.uio.no/~trygver/2007/MVC_Originals.pdf>. ModelView-Controller Manual. Acesso em: 23 mai. 2011. [AJ DF, 2011] <http://ajdf.ajsquare.com/> AJ DF Developer Community. Acesso em: 23 mai. 2011. [Pessoa, 2008] PESSOA, D. Desenvolvendo em MVC com Zend Framework. Apresentao. Disponvel em <http://www.slideshare.net/felipernb/desenvolvimentomvc-com-zend-framework-presentation>. 2008. 94p. [PHPF, 2011] <http://www.phpframeworks.com/index.php>. PHP Frameworks. Acesso em: 27 mai. 2011.