Conteúdo
O que é framework?
Antes de começar cabe uma breve definição de frameworks, uma definição geral, seja para frameworks php ou de outra linguagem, embora imagina-se que quem está buscando um, já saiba do que se trata. No entanto, é possível que um aluno de PHP, tenha vista o termo em um site, livro ou alguma outra fonte de pesquisa e ainda não saiba exatamente do que se trata. Se este é o caso, então vale a pena falar rapidamente a respeito.
Quando se pesquisa sobre o assunto, há todo tipo explicações, mais ou menos técnicas, mais ou menos simples, mas o mais comum, entre todas é a falta de clareza, principalmente se pensarmos nos leigos e assim, vamos tentar uma analogia para simplificar o entendimento e deixarmos de lado os jargões da área.
Imagine o processo de construção de uma casa. Há tijolos, blocos areia, cimento, pedras, telhas e uma série de materiais que são manipulados para produzir a casa. Mas e se o pedreiro tivesse que fazer os tijolos, as telhas, e todos os outros elementos que já estão prontos para o seu uso? O trabalho seria muito maior e desnecessariamente repetitivo e demorado.
Assim é o framework, ou seja, ele já fornece elementos que podem ser utilizados pelo programador, sem que ele tenha que começar do zero. Consiste em uma base ou estrutura de desenvolvimento que pode ser usada, cabendo ao programador apenas dar forma e finalidade ao todo, de acordo como arruma os tijolos e demais elementos para produzir um resultado final.
Ou seja, o mesmo tijolo e cimento usados para subir uma parede, podem também servir para construir uma churrasqueira ou escada. A forma como ele combina os elementos, pode produzir diferentes resultados.
Neste artigo, vamos ajudar você a encontrar o melhor Framework PHP para suas tarefas de desenvolvimento e programação. Vamos apresentar, detalhar e apontar as vantagens de 8 dos nossos Frameworks PHP favoritos. São eles:
- Laravel.
- CodeIgniter.
- Symfony.
- Zend.
- Phalcon.
- CakePHP.
- Yii.
1. Laravel
Laravel é um Frameworks PHP utilizado para o desenvolvimento web, que utiliza a arquitetura MVC e tem como principal característica ajudar a desenvolver aplicações seguras e performáticas de forma rápida, com código limpo e simples, já que ele incentiva o uso de boas práticas de programação e utiliza o padrão PSR-2 como guia para estilo de escrita do código.
Para a criação de interface gráfica, o Laravel utiliza uma Engine de template chamada Blade, que traz uma gama de ferramentas que ajudam a criar interfaces bonitas e funcionais de forma rápida e evitar a duplicação de código.
Para se comunicar com um Banco de Dados o Laravel utiliza uma implementação simples do ActiveRecord chamada de Eloquent ORM, que é uma ferramenta que traz várias funcionalidades para facilitar a inserção, atualização, busca e exclusão de registros. Com configuração simples e pequena e com pouco código podemos configurar a conexão com Banco de Dados e trabalhar com ele.
2. CodeIgniter
De acordo com a própria documentação disponibilizada pelo desenvolvedor, o CodeIgniter é um framework para desenvolvimento de aplicações em PHP. Um toolkit (kit de ferramentas) cujo objetivo é habilitar você a desenvolver projetos muito mais rápido do que você poderia fazer sem o uso de um framework. Ele provê um rico conjunto de bibliotecas para tarefas comumente necessárias, e também, interfaces simples e uma estrutura lógica para acesso a estas bibliotecas.
O CodeIgniter permite a você focar criativamente no seu projeto, uma vez que ele minimiza o montante de código necessário para uma dada tarefa.
Em termos práticos, este framework, a exemplo de outros frameworks para desenvolvimento de aplicações, oferece um conjunto de classes que podemos combinar e extender para construir nossas aplicações, nos poupando de considerável volume de codificação. Estas classes que compõem a biblioteca do framework já contam com uma estrutura de atributos e métodos que simplificam a implementação de tarefas comuns ao desenvolvimento de qualquer aplicação, como por exemplo, conexão com banco de dados, execução de consultas e tratamento dos dados retornados, construção de formulários e outros conteúdos HTML para a composição da interface visual da aplicação, entre várias outras.
Além de oferecer uma ampla biblioteca de classes, o CodeIgniter também dispõe ao programador um conjunto de helpers, que podem ser entendidos como bbliotecas de funções, agrupadas de acordo com a sua finalidade. Por exemplo, há um helper específico para manipulação de datas, que orferece ao desenvolvedor um conjunto de funções que normalmente são necessárias, poupando novamente o desenvolvedor da tarefa de codificação destas funções. Além do ganho de tempo, com a economia da codificação, há também o ganho em termos da qualidade dos códigos utilizados, uma vez que todo o código disponibilizado pelo framework é sempre testado exaustivamente antes de ser liberado e, além disso, há toda uma comunidade de desenvolvedores colaborando com a melhoria, correção e validação dos códigos que são incorporados ao CodeIgniter.
3. Symfony
Software livre sobre a licença MIT, o Symfony é um Framework web escrito em PHP, lançado em 2005.
Sua comunidade conta com mais de 600.000 desenvolvedores de mais de 120 países, tornando a implementação de novas funcionalidades ao Framework um processo rápido.
É um Framework amplamente conhecido por ter sido um dos primeiros a trabalhar com componentes, possibilitando o reuso do seu código em diversos projetos open sources. Os principais pontos em sua filosofia são:
- A utilização de melhores práticas de desenvolvimento;
- A criação de aplicações profissionais, e;
- A interoperabilidade de aplicações.
Utiliza o padrão de projeto MVC, que é basicamente:
- Model: Parte lógica da aplicação que gerencia o comportamento dos dados. 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 aplicação 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, comandando a visão e o modelo para se alterarem de forma apropriada.
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.
Características
- Framework altamente flexível que permite a escolha de componentes individuais.
- Vantagem de ter uma funcionalidade de testes nativa.
- Excelente manual para aprendizado.
O Symfony pode ser uma boa opção se você se importa com modularidade. Você pode utilizar apenas os componentes que deseja ao invés da biblioteca completa. Isso faz com que este seja o melhor framework, se você precisa apenas de uma ajudinha.
Leia também: PHP vs JavaScript: Qual escolher para o projeto?
4. Zend
Zend é referência quando falamos de frameworks php, até porque o Zend ajuda a manter o PHP e que dá treinamento e certificação de PHP. O Zend foi lançado em 2006 e já se encontra na versão 3, apesar de não ser o mais buscado nas pesquisas do Google, uma parcela fiel do seu público são empresas.
Um dos pontos que prejudica o Zend é a alta curva de aprendizagem para dominar o Framework, o que acaba afastando novos desenvolvedores. Além disso, um dos pontos que os desenvolvedores costumam reclamar do Zend é que ele é mais pesado que a maioria dos Frameworks do mercado.
Caracteristicas do framework | |
Linguagem | PHP |
Banco de dados | MySQLPostgressRedisMongoDBCassandraSQL ServerRedisOracleMariaDBMemcacheDB2 |
Features | ScaffoldInternacionalização (i18n) |
Modelos de DB | RelacionalOrientado a objetoNoSQLXML |
Princípios de desenvolvimento | TDD (Test-driven development)Don’t repeat yourself |
O Zend é um Framework mais robusto que a maioria do mercado e podemos ver isso por sua gama de recursos. Ele por si só possui integração com mais bancos de dados que o Laravel e outros. Também trabalha com os modelos de banco de dados NoSQL e o XML.
O Zend possui as features do Scaffold e internacionalização que já conversamos no post do Laravel também estão integradas no Zend.
O Zend pode ser uma boa pedida se você quer construir grandes aplicações em aplicações menores o poderio dele é muito grande o que seria como aquela velha comparação de querer matar uma barata com uma bala de canhão, talvez um outro Framework ou até não usar Framework poderia ser mais fácil e rápido.
5. Phalcon
Phalcon: novo, mas com potencial
O Phalcon foi lançado em 2012, ou seja, tem apenas cerca de quatro anos de existência. Mesmo assim, ele tem apresentado um crescimento muito positivo, com muitos usuários e uma comunidade crescente ocupada com a melhoria constante deste framework. Atualmente, ele está na versão 2.0.13 e já foi traduzido para, pelo menos, 14 idiomas (inclusive português).
Diferenciais do Phalcon
Existem dois diferenciais principais do framework Phalcon que você precisa conhecer. Em primeiro lugar, ele funciona como uma extensão de servidor web, escrita em linguagem C. Obviamente, isso já é uma grande diferença de arquitetura em relação aos outros frameworks PHP mais usados (como Symfony ou Laravel), que são escritos na própria linguagem PHP.
O uso da linguagem C e o fato de ser usado como uma extensão web fazem com que o Phalcon tenha outro diferencial importante. Ele é considerado o framework mais rápido disponível. A velocidade de execução é maior e ele também consegue lidar com mais solicitações HTTP por segundo, se comparado a outros frameworks escritos em PHP.
6. CakePHP
O CakePHP é um Framework de desenvolvimento rápido web em PHP, suas principais características são:
- Código aberto
- Utiliza a arquitetura MVC
- Possui um robusto sistema de persistência de dados que facilita as operações CRUD
- Utiliza URLs amigáveis(
mod_rewrite
) - Estrutura de diretórios simples e clara
Arquitetura MVC
O CakePHP como a maioria dos Frameworks PHP web utiliza a arquitetura MVC que divide a aplicação em três camadas Modelo(Model), Visão(View) e Controle(Controller) para torná-la de mais fácil manutenção permitindo que alterações em uma das camadas causem pouca influencia nas outras.
- Modelo(Model): Representa os dados que a aplicação manipula. Suas regras de validação e persistência.
- Visão(View): É a apresentação dos dados para o usuário, normalmente uma página HTML mas pode gerar outros tipos de documentos como PDF, XML,XLS, etc.
- Controle(Controller): É onde se processa e responde as requisições do usuário e pode invocar alterações no Model.
7. Yii
um framework Open-Source PHP com alto poder de desempenho e escalabilidade.
Chegou a sua versão histórica Yii 1.0 em 2008 e, desde então, sua popularidade entre os desenvolvedores tem crescido cada vez mais.
O Framework possui um excelente suporte a MVC, DAO / Active Record, I18N (Internationalization) / L10N (Localization), Cache, Autenticação e Controle de acesso (RBAC), Testes unitários, Gerador de códigos automáticos, Skinning and Theming, Jquery / solicitações Ajax integrado aos widgets do Yii, Web Services (WSDL) e muito mais.
Sua documentação é bem rica e possui um fluxo expressivo de desenvolvedores em seu fórum.
Eis suas principais características:
Rápido
A arquitetura do Yii permite que o mesmo carregue somente o necessário para aplicação no presente momento e, em conjunto com o suporte a cache (APC), consegue um RPS (Requisição por Segundo) bastante interessante.
Seguro
Um framework com um excelente desempenho não é nada se sua segurança é fraca, não é mesmo?
O Yii por padrão faz o tratamento/validações de entrada e saída de dados, oferece suporte a ataques SQL Injection, Cross-site scripting (XSS), CSRF (Cross-Site Request Forgery), Cookie Attack e entre outros.
Profissional
Yii segue o padrão MVC em sua estrutura, garantindo a separação entre camadas lógicas e camadas de apresentação do projeto a ser desenvolvido. Ele auxilia o desenvolvedor a ter um código mais limpo e reutilizável (DRY – Don’t repeat yourself) sem grandes esforços, supre a elaboração de sites simples bem como aplicações extremamente complexas, sendo necessário se preocupar apenas com tarefas específicas do projeto.
Outro fator importante é que ele aceita muito bem integrações com códigos de terceiros, como por exemplo, PEAR, Codeigniter, Zend Framework.
8. FuelPHP
O Fuel PHP Framework é um framework PHP 5.4+ rápido, simples e flexível, nascido das melhores ideias de outros frameworks, com um novo começo!
FuelPHP é uma estrutura MVC ( Model-View-Controller ) que foi projetada desde o início para ter suporte total para HMVC como parte de sua arquitetura. Mas não paramos por aí, também adicionamos ViewModels (também conhecidos como modelos de apresentação ) na combinação, o que dá a você a opção de adicionar uma camada poderosa entre o Controlador e a Visualização.
O FuelPHP também oferece suporte a uma abordagem mais baseada em roteador, onde você pode rotear diretamente para um encerramento que lida com o uri de entrada, tornando o encerramento o controlador e dando a ele o controle da execução posterior.