Posts da Tag: Zend Framework - Blog da TreinaWeb

Desenvolvimento Back-end PHP

Laminas: O futuro do Zend Framework

Se você acompanha os principais frameworks em PHP já deve ter ouvido falar sobre o Laminas. Para quem não sabe, esse é o novo nome do já conhecido Zend Framework, um dos mais antigos frameworks em PHP com um foco no mercado de soluções enterprise. Antes de falar sobre essa mudança de Laminas para Zend, vamos começar falando sobre a história do Zend Framework.

História do Zend Framework

Quem programa com PHP faz algum tempo já deve ter usado ou pelo menos ter ouvido falar sobre o Zend Framework. Para uma introdução sobre o que é o Zend Framework leia esse artigo no link. Lançado em março de 2006, o Zend Framework 1 foi um dos primeiros frameworks PHP de todos os tempos, e até o momento a versão com maior tempo de suporte de todos os frameworks em PHP, totalizando um pouco mais de 10 anos de suporte.

De 2006 pra cá, o Zend Framework acompanhou e contribuiu com a evolução do ecossistema do PHP, seja suportando novas versões da linguagem, adicionando suporte ao Composer e melhorando seu comportamento interno. Em 2012 foi lançado o Zend Framework 2, que iniciou o processo de modernização do framework em componentes menores e independentes, cada qual com seu próprio ciclo de vida além de outras melhorias.

Essa quebra do core do framework permitiu que projetos derivados pudessem ser criados, como o Apigility, um pacote de ferramentas especializado no desenvolvimento de API e também o Expressive, um micro framework modular baseado na PSR-7 que te permite escolher quais componentes você quer utilizar, suportando tanto componentes do Zend Framework como outros componentes mantidos pela comunidade.

Zend Expressive - Microframework PHP
Curso de Zend Expressive - Microframework PHP
CONHEÇA O CURSO

Além da ajuda da comunidade, tudo isso aconteceu com o suporte da Zend, empresa fundada em 1999 por Andi Gutmans e Zeev Suraski depois que eles redesenharam o até então PHP-FI, escrito originalmente pelo Rasmus Lerdorf. Em 1998 eles lançaram o Zend Engine, que se tornou o PHP 4 e desde então tornou a base da linguagem que utilizamos hoje em dia (claro, com muitas melhorias e evoluções se comparado com aquela época).

O fim do Zend Framework

Não podemos negar a importância histórica que a Zend trouxe para o ecossistema do PHP, tanto com o Zend Framework como com outras iniciativas da empresa. Porém, em Outubro de 2015, a Zend Technologies foi adquirida pela Rogue Wave Software. Tudo ia bem com o suporte ao Zend Framework. Foi nessa época inclusive que foi lançado o Zend Framework 3, junto com Expressive, consolidando a visão de um framework baseados em componentes individuais e com um ciclo de vida próprio.

Mas isso mudou quando a Rogue Wave Software foi adquirida pela Perforce em Janeiro de 2019. Nessa época, a companhia decidiu rever seu portfólio de projetos e infelizmente continuar suportando o Zend Framework não estava em seus planos. Porém o projeto em si não seria abandonado, em Abril do mesmo ano foi anunciado a transição do Zend Framework para a Linux Foundation, sob o nome de The Laminas Project.

A Linux Foundation é uma organização sem fins lucrativos especializada em projetos open source. Além de ajudar a manter e padronizar o Linux, outros projetos que fazem parte da Linux Foundation incluem o Kubernetes, Jenkins, GraphQL e até NodeJS. Isso da até uma segurança maior para nós, desenvolvedores e também para as empresas, pois temos uma garantia ainda maior na continuidade da evolução do projeto, agora gerido por um modelo de governança que já foi provado que funciona.

O início do Laminas

Após esse anúncio, iniciou o processo de migração do Zend Framework para o Laminas. Por questões de copyright, acredito eu, o nome Zend precisou ser abandonado em favor do Laminas. Com isso, todos os componentes que antes estavam sob o guarda-chuva da Zend passaram para a organização do Laminas dentro do GitHub.

Apesar de ser uma grande mudança, que pode envolver alterar as dependências dos seus pacotes no Composer, essa fase de transição (que já começou e ainda está acontecendo) tem como objetivo garantir uma migração mais suave o possível. O mesmo líder de projeto responsável por manter o Zend Framework, o Matthew Weier O’Phinney, manteve sua função no projeto, agora como líder do Laminas.

Para auxiliar nessa migração, você pode utilizar uma ferramenta de migração em seu projeto que será responsável por atualizar todas as dependências do Zend gerenciadas pelo Composer para a dependência correspondente no Laminas, entregando assim uma maneira de migrar projetos inteiros em alguns poucos comandos, incluindo também suporte para migrar projetos antes desenvolvidos com Expressive e Apigility.

Falando sobre Expressive e Apigility, eles também foram renomeados para Laminas Mezzio e Laminas API Tools, respectivamente, aproveitando assim o momento de alteração do projeto principal.

Subprojetos do Laminas

Desenvolvedor PHP
Formação: Desenvolvedor PHP
Nesta formação você aprenderá todos os conceitos da linguagem PHP, uma das mais utilizadas no mercado. Desde de conceitos de base, até características mais avançadas, como orientação a objetos, práticas de mercado, integração com banco de dados. Ao final, você terá conhecimento para desenvolver aplicações PHP usando as práticas mais modernas do mercado.
CONHEÇA A FORMAÇÃO

Status atual da migração para o Laminas

Nesse momento, já estamos em uma fase bem avançada da migração para o Laminas. Os componentes do Zend já foram migrados para os novos repositórios na organização do Laminas e as referências dos componentes no Composer já podem ser utilizados.

Inclusive, ao tentar utilizar um componente do Zend, você receberá uma mensagem informando que o mesmo foi abandonado e que você deve atualizar suas dependências para utilizar o componente do Laminas:

Componentes do Zend Framework descontinuados

PHP - Gerenciador de dependências Composer
Curso de PHP - Gerenciador de dependências Composer
CONHEÇA O CURSO

Já podemos acessar a documentação dos componentes do Laminas em um novo domínio, bem como do Mezzio e do Laminas MVC. Ainda não está disponível a documentação do Laminas API Tools, mas num futuro próximo já deve estar disponível.

Estou começando um novo projeto, ou quero migrar um projeto existente, o que eu faço?

Então, se você estiver pensando em construir uma nova aplicação com Zend Framework, recomendo já começar utilizando o Laminas MVC ou o Mezzio. Ambos já tem tutoriais na documentação mostrando como criar projetos do zero com essas ferramentas.

Para você que já tem um projeto desenvolvido com Zend Framework, consulte a documentação sobre a migração para o Laminas. Com poucos comandos pode ser possível você migrar toda sua aplicação de forma bastante automatizada e intuitíva.

Pessoalmente estou bastante animado com essa migração, principalmente pelas novas possibilidades que estão sendo adicionadas ao Laminas, como o suporte oficial ao Swoole para desenvolvimento assíncrono no PHP.

Para conhecer mais sobre o Swoole, configura os artigos aqui do blog da TreinaWeb sobre introdução ao Swoole e trabalhando com corrotinas. Ter uma integração oficial com o Swoole no Laminas Mezzio é algo bem promissor! 😀


Desenvolvimento Back-end PHP

O que é o Zend Framework?

O Zend Framework é um robusto Framework para o desenvolvimento de aplicações PHP, orientado à objetos e licenciado sobre a New BSD License (Licença de código aberto de domínio público).

Caso você não saiba, entenda o que é um Framework

Aqui no blog já possuímos um artigo que aborda “Para que serve um Framework”, mas em palavras mais simples, o framework é um facilitador no desenvolvimento de diversas aplicações e, sem dúvida, sua utilização poupa tempo e custos para quem utiliza, pois de forma mais básica, é um conjunto de bibliotecas utilizadas para criar uma base, onde as aplicações são construídas, um otimizador de recursos.

Possui como principal objetivo resolver problemas recorrentes com uma abordagem mais genérica. Ele permite ao desenvolvedor focar nos “problemas” da aplicação, não na arquitetura e configurações.

Zend Expressive - Microframework PHP
Curso de Zend Expressive - Microframework PHP
CONHEÇA O CURSO

De volta ao Zend Framework…

Multiplataforma e de fácil escrita, implementar códigos mais complexos com o Zend torna-se algo mais acessível, permitindo que os desenvolvedores utilizem componentes quando e onde fizerem sentido em suas aplicações, sem a necessidade da instalação de componentes desnecessários para um projeto.

É um Framework utilizado por grandes empresas, como Cisco, Serpro, AutoTrack, BBC, entre outras, e possui uma comunidade extremamente ativa.

Possui como características:

  • É escrito em PHP;
  • Também é possível trabalhar com modelos de banco de dados NoSQL e XML;
  • Possui suporte para múltiplos sistemas de bancos de dados, incluindo MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite, e Informix Dynamic Server;
  • Possui gerenciamento de sessão;
  • Possui Componente nativo PHP para leitura, atualização e criação de documentos PDF;
  • Autenticação e autorização baseada em ACL (Controle de acesso);
  • Arquitetura “use-a-vontade”, que permite a reutilização de componentes, entre outras;

Padrão

Por padrão, o Zend Framework não implementa modelo arquitetural, porém há diversos componentes que utilizam o padrão MVC, comumente mais utilizado nos projetos.

Sendo assim, o Zend Framework permite que o desenvolvedor tenha total liberdade para definir a estrutura do seu projeto, porém, claro, é sempre bom seguir um padrão amplamente adotado pela comunidade, como o MVC.

Basicamente, o MVC funciona da seguinte forma:

Ao receber uma requisição, o Controller solicita ao Model as informações necessárias (que provavelmente virão do banco de dados), que as obtém e retorna ao Controller. De posse dessas informações, o Controller as envia para a View que irá renderizá-las.

Model: Parte lógica da aplicação que gerencia o comportamento dos dados, ou seja, todos os seus recursos (consultas ao BD, validações, notificações, etc). A camada de model apenas tem o necessário para que tudo aconteça, mas não sabe quando irá executar.

View: Gerencia a saída gráfica e textual da parte da aplicação visível ao usuário final, não possuindo a responsabilidade de saber quando vai exibir os dados, apenas como irá exibi-los.

Controller: Essa é a camada que sabe quem chamar e quando chamar para executar determinada ação, interpretando as entradas do mouse e teclado do usuário, comandando a visão e o modelo para se alterarem de forma apropriada.

Podemos então concluir:

O Zend Framework é um excelente Framework para criação de aplicações em PHP. Com ele podemos criar grandes projetos, com total segurança e desempenho. Neste artigo vimos algumas das suas principais características, e em seu site é possível realizar o download do Framework, além de encontrar toda sua documentação.