Zend Framework é um framework para aplicações Web de código aberto, orientado a objetos, implementado em PHP 5 e licenciado sob a New BSD License. Zend Framework—freqüentemente referido como ZF—é desenvolvido com o objetivo de simplificar o desenvolvimento web enquanto promove as melhores práticas na comunidade de desenvolvedores PHP.
A arquitetura use-a-vontade do ZF permite que os desenvolvedores reutilizem componentes quando e onde eles fizerem sentido em suas aplicações sem requerer outros componentes ZF além das dependências mínimas. Não há portanto nenhum paradigma ou padrão que todos os usuários Zend Framework devam seguir, embora ZF forneça componentes para os padrões de projeto MVC e Table Gateway que são usados na maioria das aplicações ZF. Zend Framework fornece componentes individuais para muitos outros requisitos comuns no desenvolvimento de aplicações web, incluindo autenticação e autorização via listas de controle de acesso (ACL), configuração de aplicações, data caching, filtragem/validação de dados fornecidos pelo usuário para segurança e integridade de dados, internacionalização, interfaces para funcionalidades AJAX, composição/entrega de email, indexação e consulta no formato de busca Apache Lucene, e todas as Google Data APIs com muitos outros web services populares. Por causa de seu projeto fracamente acoplado, os componentes ZF podem ser usados de modo relativamente ao lado de componentes de terceiros PHP web application frameworks.[2]

Zend Framework

Logotipo do Zend Framework
Desenvolvedor Zend Technologies
Versão estável 2.5.3[1] (27 de janeiro de 2016; há 8 anos)
Escrito em PHP
Sistema operacional Multiplataforma
Gênero(s) Framework para aplicações Web
Licença New BSD License
Página oficial Zend Framework (em inglês)., acessado pela última vez há 607 semanas e 1 dia

História e Filosofia editar

Zend Framework foi concebido no início de 2005 enquanto muitos novos frameworks, tais como Ruby on Rails e Spring Framework, estavam ganhando popularidade na comunidade web development. ZF foi publicamente anunciado pela primeira vez na Zend Conference.[3] Ao mesmo tempo, nenhum framework amplamente usado tem sido disponibilizado para a comunidade PHP para preencher completamente necessidades de desenvolvimento web similares. Os projetistas do Zend Framework buscaram combinar características de uso final e rapid application development (RAD) desses novos frameworks com a simplicidade, abertura e praticidade do mundo real que é altamente valorizada na comunidade PHP.[4]

Tipicamente, cenários de uso de desenvolvimento específicos são implementados usando componentes de softwares mais genéricos através de configuração automática e/ou geração de código. Nos https://web.archive.org/web/20080812044410/http://framework.zend.com/download/, a comunidade Zend Framework optou pelo desenvolvimento completo e teste desses componentes essenciais antes de começar a trabalhar na simplificação de tarefas de desenvolvimento tais como migrações de banco de dados, geração de scaffolding, e configuração e criação de projeto. Essa prática tem sido objeto de algumas críticas desde que algumas funcionalidades consideradas por muitos como necessárias para um release geral para frameworks de aplicação web modernos foram deixadas para futuros releases do Zend Framework. Muitos usuários ZF, entretanto, têm achado tais componentes de software geneŕicos mais reusáveis e extensíveis na implementação de suas aplicações. Zend Framework também procura promover as melhores práticas de desenvolvimento web na comunidade PHP; convenções não são tão comumente usadas no ZF como em muitos outros frameworks. Apropriadamente as sugestões são substituidas por padrões razoáveis de configuração que podem ser sobrescritos por cada requisito específico da aplicação ZF.

Licenciamento editar

Zend Framework está licenciado sob Open Source Initiative(OSI)-approved New BSD License, e todos os contribuidores de código devem assinar um Contributor License Agreement (CLA) baseado no Apache Software Foundation’s CLA. O licenciamento e as políticas de contribuição foram estabelecidas para frustrar quaisquer questões de propriedade intelectual por usuários ZF comerciais.[2]

Patrocinador e parceiros editar

Zend Technologies, co-fundada pelos contribuidores do núcleo PHP Andi Gutmans e Zeev Suraski, é a patrocinadora corporativa do Zend Framework. Os parceiros tecnológicos incluem IBM, Google, Microsoft, e StrikeIron.

Requisitos editar

Zend Framework requer PHP 5.1.4 ou superior, embora o Guia de Referência do Programador Zend Framework recomende PHP 5.2.4 ou superior por melhorias de segurança e desempenho incluídas entre essas versões de PHP.[5] PHPUnit 3.0 ou superior é requerido para rodar os testes unitário embarcados com Zend Framework. Muitos componentes também requerem extensões PHP; uma lista completa de componentes e suas dependências pode ser encontrada no Guia de Referência do Programador.

Releases editar

Os releases do Zend Framework são versionados com três números no formato x.y.z, onde uma mudança no x, y, ou z corresponde ao maior, menor e mini releases, respectivamente. O primeiro Disponibilidade Geral release do ZF foi lançado em 30/06/2007 como Zend Framework 1.0.

Desenvolvimento atual editar

A primeira versão de desenvolvimento do Zend Framework 2.0 foi lançado em 6 de agosto de 2010.[6] As alterações feitas neste lançamento foram a retirada das declarações require_once, a migração para os namespaces do PHP 5.3, uma suíte de testes refatorada, a reescrita do Zend\Session, e a adição do novo Zend\Stdlib. O lançamento da terceira versão de desenvolvimento foi em 14 de junho de 2011.[7]

A primeira versão estável do Zend Framework 2.0 foi lançado em 5 de setembro de 2012.[8]

Características editar

  • Todos os componentes são PHP 5 completamente orientados a objeto e tem conformidade com E STRICT
  • Arquitetura "use à vontade" com fraco acoplamento de componentes e interdependências mínimas
  • Implementação MVC extensível suportando layouts e templates baseados em PHP por padrão
  • Implementação flexível de Table Gateway para acessar dados de um banco de dados relacional em um ambiente orientado a objetos
  • Suporte para múltiplos sistemas de bancos de dados, incluindo MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, e Informix Dynamic Server
  • Autenticação e autorização baseada em ACL usando uma variedade de sistemas de backend
  • Filtro de dados e validação para fortalecimento da segurança da aplicação
  • Gerenciamento de sessão
  • Componente de configuração para promover um gerenciamento de configuração consistente através de Zend Framework e aplicações ZF
  • Composição e entrega de email, recuperação via mbox, Maildir, POP3 e IMAP4
  • Indexação e busca que suporta o formato de arquivo índice Apache Lucene
  • Internationalização e localização
  • Criação de formulários usando PHP, arquivos de configuração ou XML
  • Tecnologias de Identity 2.0 tais como Microsoft InfoCard e OpenID
  • Múltiplos formatos para web services, incluindo XML-RPC, REST, e Google GData.
  • Subsistema de caching flexível com suporte para muitos tipos de backends, tais como memory ou um sistema de arquivos.
  • Componente de logging simples inspirado por log4j
  • Componente nativo PHP para leitura, atualização e criação de documentos PDF
  • Serialização de estruturas de dados PHP para e de JSON de modo a facilitar o desenvolvimento AJAX
  • API para consumir RSS e alimentadores Atom
  • Bibliotecas cliente para muitos repositórios de web services, incluindo Amazon E-Commerce Service, Akismet, del.icio.us, Flickr, StrikeIron, Yahoo!, Audioscrobbler, e Simpy.

Código, documentação, e padrões de teste editar

Contribuições de código para o Zend Framework são sujeitas a um código rigoroso, documentação, e padrões de teste. Todo código deve ir ao encontro dos padrões de codificação e os teste unitários devem alcançar 80% de cobertura de código antes que o código correspondente possa ser movido para a marca de release.[9]

Bibliografia editar

  • Carl Evans, Guia para Programação com Framework ZEND. Ciência Moderna. ISBN 978-85-7393-755-8.
  • Flávio Gomes da Silva Lisboa, Desenvolvendo em PHP 5 Orientado a Objetos com MVC. Novatec Editora. ISBN 978-85-7522-158-7.
  • Flávio Gomes da Silva Lisboa, Zend Framework - Componentes Poderosos para PHP. Novatec Editora. ISBN 978-85-7522-189-1.
  • Flávio Gomes da Silva Lisboa, Criando Aplicações em PHP com Zend e Dojo: Padrões e Reuso com Frameworks. Novatec Editora. ISBN 978-85-7522-235-5.
  • Steven Brown, Rob Allen e Nick Lo, Zend Framework em Ação. Alta Books. ISBN 978-85-7608-338-2.

Ver também editar

Referências

  1. Matthew Weier O'Phinney (3 de junho de 2015). «Zend Framework 2.2.1 Released!» (em inglês). ZF Blog. Consultado em 22 de junho de 2017 
  2. a b «Why ZF?». 2007. Consultado em 14 de julho de 2008. Arquivado do original em 24 de julho de 2008 
  3. Morgan, Oonagh (19 de outubro de 2005). «Zend Announces Industry-wide PHP Collaboration Project at its Inaugural PHP Conference». Zend Technologies. Consultado em 14 de julho de 2008. Arquivado do original em 1 de janeiro de 2009 
  4. Gutmans, Andi (1 de julho de 2007). «Zend Framework 1.0 Released!». Consultado em 14 de julho de 2008 
  5. «Guia de Referência do Programador Zend Framework». Consultado em 6 de agosto de 2008. Arquivado do original em 12 de janeiro de 2008 
  6. Matthew Weier O'Phinney (6 de agosto de 2010). «First Development Milestone of ZF 2.0 Released». Zend Developer Zone. Consultado em 29 de junho de 2013. Arquivado do original em 18 de julho de 2013 
  7. Matthew Weier O'Phinney (14 de junho de 2011). «Zend Framework 2.0.0dev3 Release». Zend Developer Zone. Consultado em 29 de junho de 2013. Arquivado do original em 23 de maio de 2013 
  8. Matthew Weier O'Phinney (5 de julho de 2012). «Zend Framework 2.0.0 STABLE Released!». ZF Blog. Consultado em 29 de junho de 2013 
  9. «Zend Framework Contributor Guide». 7 de janeiro de 2006. Consultado em 14 de julho de 2008. Arquivado do original em 18 de maio de 2008 

Ligações externas editar

  Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  Este artigo sobre Internet é um esboço. Você pode ajudar a Wikipédia expandindo-o.