Você está na página 1de 37

Anlise sobre a utilizao de

frameworks em PHP:
CakePHP, CodeIgniter e Zend

Thiago Sinsio
Yan Magalhes

20 de novembro de 2013

O QUE SO FRAMEWORKS ?
Estrutura de suporte definida em que um outro projeto de software
pode ser organizado e desenvolvido;
Inclui programas de suporte, bibliotecas de cdigo, linguagens de
script e outros softwares para auxiliar no desenvolvimento.

DIFERENA ENTRE API x BIBLIOTECA x


FRAMEWORK
Framework: uma base pronta que nos permite criar aplicaes de forma mais rpida,
investindo menos tempo em produzir cdigo repetido e mais tempo no desenvolvimento real
da aplicao. Ao contrrio das bibliotecas, so os frameworks que ditam a estrutura e o fluxo
de controle que a aplicao deve ser construda;
Ex: Zend Framework
Application Programming Interface (Interface de Programao de Aplicativos) - API: Software
que permite a utilizao de seus servios sem a necessidade do utilizador envolver-se com
detalhes de sua implementao;
Ex: API do facebook.
Biblioteca: Conjunto de classes e mtodos que auxiliam no desenvolvimento de aplicaes.
Ex: jQuery.

VANTAGENS EM UTILIZAR UM
FRAMEWORK

Utilidade: Auxilia no desenvolvimento de aplicaes e softwares. Possuem funcionalidades


nativas, que ajudam a resolver questes sobre programao do dia-a-dia com qualidade e
eficincia.
A maioria dos bons frameworks j traz nativamente funcionalidades como: Validao de
formulrios; Filtro de entrada e sada de dados; Abstrao da camada de banco de dados;
Manipulao de session e cookie; Email; Calendrio; Paginao, sem contar inmeros
plugins construdos pela comunidade;

Segurana: Os bons frameworks so projetados de modo a garantir a segurana da


aplicao, tratando de forma nativa os ataques mais comuns como o SQL Injection, XSS,
etc;

Economia de tempo: A mdio e longo prazo ganha-se tempo no desenvolvimento de


aplicaes, uma vez que tarefas repetitivas no so mais executadas, trabalhando assim
com o conceito DRY (Dont Repeat Yourself).

VANTAGENS EM UTILIZAR UM
FRAMEWORK

Documentao: Geralmente disponibilizam material de qualidade nos web sites ou


repositrios oficiais, com uma vasta documentao a respeito. Alm disso, os bons
frameworks sempre tm uma comunidade de desenvolvedores dispostos a se
ajudarem entre si;

Organizao: quando se instala um framework PHP, ele j vem com uma estrutura
de pastas. Com isso, se espera que os desenvolvedores mantenham este padro
inicial e o projeto se mantenha organizado;

Suporte da comunidade: Todos os frameworks populares possuem uma


comunidade ativa. Assim, pode-se conversar com outros desenvolvedores, pedir
ajuda, feedback, fruns de discusso, etc.

VANTAGENS EM UTILIZAR UM
FRAMEWORK

Padro MVC: a maioria dos frameworks utilizam este padro;

Performance: Este um dos principais pontos que os opositores discutem, porm, devese analisar que desenvolvedores so mais caros que servidores. De qualquer maneira, a
maioria deles possuem ferramentas para caching, benchmarks, profiling, etc. Os
frameworks modernos tambm utilizam carregamento dinmico que carregam somente o
necessrio;

Trabalho em equipe: A maneira que os projetos so organizados ajudam a criar um


ambiente favorvel para o trabalho em equipe, como por exemplo permitir a equipe de
front-end trabalhar somente na View.

DESVANTAGENS EM UTILIZAR UM
FRAMEWORK

Aprender o framework, no a linguagem: se o desenvolvedor souber pouco


sobre a linguagem, ele aprender o framework e no a linguagem propriamente
dita;

Limitao: No possvel modificar o comportamento do core do framework,


ento, o desenvolvedor forado a respeitar estas limitaes e trabalhar no
caminho requerido. Com isso, necessrio ter certeza do framework que est
sendo escolhido;

Cdigo pblico: Uma vez que o framework est disponvel para todos, isto inclui
pessoas mal-intencionadas tambm.

DESVANTAGENS EM UTILIZAR UM
FRAMEWORK

Not Invented Here: Necessrio enfrentar a sndrome de "Isso no foi criado aqui";

Difcil adaptao: Muitas vezes a empresa precisa modificar muito seu processo
de desenvolvimento e investir em treinamento da equipe no framework;

Dependncia: Aps comear a usar frameworks, cria-se uma grande dependncia


deles.

ZEND FRAMEWORK 2

ZEND FRAMEWORK 2 - ORGANIZAO,


ESTRUTURA E FUNCIONAMENTO

ZEND FRAMEWORK 2 - PONTOS FORTES

Verses novas: Trabalha com os recursos mais novos das verses do PHP, 5.3+;

POO: 100% orientado a objetos;

Desenvolvido pela Zend: uma das empresas que mais contribuem para o
desenvolvimento do PHP, alm disso tem o apoio de empresas como Google e
Microsoft;

Atualizao: Sofre atualizaes e manutenes constantes (no est


abandonado);

ZEND FRAMEWORK 2 - PONTOS FORTES

Documentao: Possui documentao extensa;

ZEND FRAMEWORK 2 - PONTOS FORTES

Cdigo livre: O cdigo est disponvel no GitHub - https://github.


com/zendframework/zf2

Qualidade: Desenvolvido utilizando PHPUnit.

ZEND FRAMEWORK 2 - PONTOS FRACOS


Aprendizagem: Curva inicial de aprendizagem alta (h
relatos que na ZF2 foi muito reduzida);

ZEND FRAMEWORK 2 - APLICABILIDADE


Mais indicado para aplicaes de mdia e alta
complexidade.

CODE IGNITER

O QUE ?
CodeIgniter um framework PHP poderoso, construdo para
programadores PHP que necessitam de uma ferramenta simples
e elegante para criar aplicaes web com recursos completos.
Se voc um desenvolvedor que vive no mundo real das contas
de hospedagem compartilhada e clientes com prazos, ento
CodeIgniter pode ser um bom ajuste.
Texto Adaptado da Ellislab

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO

No arquivo index.php (j vm pronto), so inicializados os recursos do CI


para carregar a aplicao;

Em seguida, chamado um routing (uma rota) para examinar a


requisio HTTP e determinar o que ser feito;

Caso j exista algo no cache do browser, a informao solicitada


retornada diretamente ao browser e em seguida, exibida ao usurio;

Antes do Controller responsvel por aquela solicitao ser acionado, a


requisio filtrada atravs das classes de Segurana.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO
O Controller ento realiza o carregamento das Models,
Views, Libraries e executa os mtodos responsveis pela
requisio;
A View responsvel pelo processamento das informaes no
Controller (caso seja necessrio) ento enviada ao
browser, j ficando armazenada em cache.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO

PRINCIPAIS VANTAGENS

Fcil atualizao: No compromete no funcionamento dos cdigos da


pasta application;

Comunidade bastante ativa: Repositrio oficial no GitHub;

Quase nenhum requisito de Hardware;

Leve (2,2 MB - 2.1.4);

Fcil Aprendizado: Bastante indicado pela comunidade para quem quer


aprender um framework php baseado em MVC;

Instalao: No Existe.

PRINCIPAIS DESVANTAGENS
No trabalha com AJAX de forma nativa;
Atualizao mais lenta, se for comparado a outros
frameworks;
Indeciso ao seu futuro.

CAKE PHP

O QUE ?
O CakePHP um framework de desenvolvimento rpido para PHP,
livre e de cdigo aberto com o objetivo de se criarem rpidas
aplicaes web, estruturadas e flexveis, seguindo o padro MVC.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO
app: Onde fica toda a aplicao Web;
lib: Onde fica o core do CakePHP;
vendors: Pasta responsvel por armazenar bibliotecas
externas;
.htacces e index.php.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO
No arquivo index.php (j vm pronto), so inicializados os
recursos do Cake para carregar a aplicao;
Em seguida, a requisio HTTP examinada por um dispatcher
(expedidor) que dever encaminhar a informao solicitada ao
Controller responsvel por determinada ao;
Ao ser executado, o Controller se comunica com a camada Model
para processar informaes de insero/busca no BD.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO
Ao trmino da busca ele se comunica com a View
responsvel pela requisio HTTP ou o objeto View que
dever exibir a informao para o usurio, para gerar o
resultado informado pelo Model e processado pelo
Controller;

Logo depois desta etapa, a informao chega ao Browser,


transmitindo a informao ao usurio.

ORGANIZAO, ESTRUTURA E
FUNCIONAMENTO

PRINCIPAIS VANTAGENS

Trabalha com AJAX de forma nativa;

Comunidade bastante ativa: Repositrio oficial no GitHub;

Quase nenhum requisito de Hardware;

Leve (2,0 MB - 2.4.2);

Facilidade de trabalho com frameworks Front-End. Ex: Twitter Bootstrap;

Bastante Robusto;

Instalao: No Existe.

PRINCIPAIS DESVANTAGENS

Poucas classes de Helpers;

Exige mais habilidades do programador, caso queira se trabalhar com Design


Patterns (Padres de Projeto) ou modificar alguma estrutura do framework;

Atualizao do framework requer testes no projeto;

Por ter uma curva de aprendizado alta, requer um tempo maior para estudos e
testes, com o objetivo de conhecer melhor o funcionamento do framework;

Por ser mais robusto necessrio dedicar um tempo maior na fase de anlise
do projeto.

APLICABILIDADE - CAKE E CI
Framework bastante indicado para o desenvolvimento de
aplicaes web de baixa e mdia complexidade.

CONCLUSO

Testar em algum projeto, para analisar o impacto no desenvolvimento, manuteno,


performance, etc;

Manter a mente aberta para novas tecnologias;

Uma vez que entender como o framework funciona, saber trabalhar com o bsico
de todos os produtos;

Aprender a trabalhar com eles e conseguir desenvolvedor possvel funcionalidades


no existentes.

REFERNCIAS

http://blog.thiagobelem.net/frameworks-no-php-o-que-quando-porque-e-qual
http://codeigniterbrasil.com/passos-iniciais/o-que-e-um-framework-definicao-ebeneficios-de-se-usar-frameworks/
http://pt.wikipedia.org/wiki/Framework
http://pt.wikipedia.org/wiki/API
http://www.youtube.com/watch?v=KX2N5k-OcFs
http://jquerybrasil.org/jquery-biblioteca-ou-framework/
http://www.slideshare.net/aitproeg/framework-usar-ou-no-usar
http://www.phpandstuff.com/articles/top-10-reasons-why-you-should-use-a-phpframework
http://en.wikipedia.org/wiki/Profiling_(computer_programming)
http://pt.wikipedia.org/wiki/Benchmark_(computao)

REFERNCIAS

http://www.1stwebdesigner.com/design/pros-cons-frameworks/
http://en.wikipedia.org/wiki/Not_invented_here
http://phpatual.blogspot.com.br/2012/03/vantagens-e-desvantagens-de-usar.html
http://framework.zend.com/
http://www.slideshare.net/ergalvao/zf2-menor-melhor-e-mais-poderoso
http://www.php-developer.org/most-used-php-framework-the-popular-top-7-list-inyear-2011/
http://codeigniterbrasil.com/
http://ellislab.com/codeigniter
http://www.phpframeworks.com/
http://www.phptherightway.com/
http://api.cakephp.org/2.4/

REFERNCIAS

http://book.cakephp.org/2.0/pt/installation.html
http://blog.thiagobelem.net/frameworks/cakephp/
https://groups.google.com/forum/#!topic/cakephp-pt/Vjdaw221VDc
http://blog.thiagobelem.net/atualizando-seu-projeto-em-cakephp-para-a-versao-2-0/
Livro - PHP e MVC com CodeIgniter : Editora Novatec

Você também pode gostar