SlideShare uma empresa Scribd logo
Análise sobre a utilização de
frameworks em PHP:
CakePHP, CodeIgniter e Zend

Thiago Sinésio
Yan Magalhães

20 de novembro de 2013
O QUE SÃO FRAMEWORKS ?
● Estrutura de suporte definida em que um outro projeto de software
pode ser organizado e desenvolvido;
● Inclui programas de suporte, bibliotecas de código, linguagens de
script e outros softwares para auxiliar no desenvolvimento.
DIFERENÇA ENTRE API x BIBLIOTECA x
FRAMEWORK
Framework: É uma base pronta que nos permite criar aplicações de forma mais rápida,
investindo menos tempo em produzir código repetido e mais tempo no desenvolvimento real
da aplicação. Ao contrário das bibliotecas, são os frameworks que ditam a estrutura e o fluxo
de controle que a aplicação deve ser construída;
Ex: Zend Framework
Application Programming Interface (Interface de Programação de Aplicativos) - API: Software
que permite a utilização de seus serviços sem a necessidade do utilizador envolver-se com
detalhes de sua implementação;
Ex: API do facebook.
Biblioteca: Conjunto de classes e métodos que auxiliam no desenvolvimento de aplicações.
Ex: jQuery.
VANTAGENS EM UTILIZAR UM
FRAMEWORK
●

Utilidade: Auxilia no desenvolvimento de aplicações e softwares. Possuem funcionalidades
nativas, que ajudam a resolver questões sobre programação do dia-a-dia com qualidade e
eficiência.
A maioria dos bons frameworks já traz nativamente funcionalidades como: Validação de
formulários; Filtro de entrada e saída de dados; Abstração da camada de banco de dados;
Manipulação de session e cookie; Email; Calendário; Paginação, sem contar inúmeros
plugins construídos pela comunidade;

●

Segurança: Os bons frameworks são projetados de modo a garantir a segurança da
aplicação, tratando de forma nativa os ataques mais comuns como o SQL Injection, XSS,
etc;

●

Economia de tempo: A médio e longo prazo ganha-se tempo no desenvolvimento de
aplicações, uma vez que tarefas repetitivas não são mais executadas, trabalhando assim
com o conceito DRY (Don’t Repeat Yourself).
VANTAGENS EM UTILIZAR UM
FRAMEWORK
●

Documentação: Geralmente disponibilizam material de qualidade nos web sites ou
repositórios oficiais, com uma vasta documentação a respeito. Além disso, os bons
frameworks sempre têm uma comunidade de desenvolvedores dispostos a se
ajudarem entre si;

●

Organização: quando se instala um framework PHP, ele já vem com uma estrutura
de pastas. Com isso, se espera que os desenvolvedores mantenham este padrão
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, fóruns de discussão, etc.
VANTAGENS EM UTILIZAR UM
FRAMEWORK
●

Padrão MVC: a maioria dos frameworks utilizam este padrão;

●

Performance: Este é um dos principais pontos que os opositores discutem, porém, devese analisar que desenvolvedores são mais caros que servidores. De qualquer maneira, a
maioria deles possuem ferramentas para caching, benchmarks, profiling, etc. Os
frameworks modernos também utilizam carregamento dinâmico que carregam somente o
necessário;

●

Trabalho em equipe: A maneira que os projetos são organizados ajudam a criar um
ambiente favorável 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, não a linguagem: se o desenvolvedor souber pouco
sobre a linguagem, ele aprenderá o framework e não a linguagem propriamente
dita;

●

Limitação: Não é possível modificar o comportamento do core do framework,
então, o desenvolvedor é forçado a respeitar estas limitações e trabalhar no
caminho requerido. Com isso, é necessário ter certeza do framework que está
sendo escolhido;

●

Código público: Uma vez que o framework está disponível para todos, isto inclui
pessoas mal-intencionadas também.
DESVANTAGENS EM UTILIZAR UM
FRAMEWORK
●

Not Invented Here: Necessário enfrentar a síndrome de "Isso não foi criado aqui";

●

Difícil adaptação: Muitas vezes a empresa precisa modificar muito seu processo
de desenvolvimento e investir em treinamento da equipe no framework;

●

Dependência: Após começar a usar frameworks, cria-se uma grande dependência
deles.
ZEND FRAMEWORK 2
ZEND FRAMEWORK 2 - ORGANIZAÇÃO,
ESTRUTURA E FUNCIONAMENTO
ZEND FRAMEWORK 2 - PONTOS FORTES
●

Versões novas: Trabalha com os recursos mais novos das versões do PHP, 5.3+;

●

POO: 100% orientado a objetos;

●

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

●

Atualização: Sofre atualizações e manutenções constantes (não está
abandonado);
ZEND FRAMEWORK 2 - PONTOS FORTES
●

Documentação: Possui documentação extensa;
ZEND FRAMEWORK 2 - PONTOS FORTES
●

Código livre: O código está disponível 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 aplicações de média e alta
complexidade.
CODE IGNITER
O QUE É ?
“CodeIgniter é um framework PHP poderoso, construído para
programadores PHP que necessitam de uma ferramenta simples
e elegante para criar aplicações web com recursos completos.
Se você é um desenvolvedor que vive no mundo real das contas
de hospedagem compartilhada e clientes com prazos, então
CodeIgniter pode ser um bom ajuste.”
Texto Adaptado da Ellislab
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
●

No arquivo “index.php” (já vêm pronto), são inicializados os recursos do CI
para carregar a aplicação;

●

Em seguida, é chamado um “routing” (uma rota) para examinar a
requisição HTTP e determinar o que será feito;

●

Caso já exista algo no cache do browser, a informação solicitada é
retornada diretamente ao browser e em seguida, exibida ao usuário;

●

Antes do Controller responsável por aquela solicitação ser acionado, a
requisição é filtrada através das classes de Segurança.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
● O Controller então realiza o carregamento das Models,
Views, Libraries e executa os métodos responsáveis pela
requisição;
● A View responsável pelo processamento das informações no
Controller (caso seja necessário) é então enviada ao
browser, já ficando armazenada em cache.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
PRINCIPAIS VANTAGENS
●

Fácil atualização: Não compromete no funcionamento dos códigos da
pasta application;

●

Comunidade bastante ativa: Repositório oficial no GitHub;

●

Quase nenhum requisito de Hardware;

●

Leve (2,2 MB - 2.1.4);

●

Fácil Aprendizado: Bastante indicado pela comunidade para quem quer
aprender um framework php baseado em MVC;

●

Instalação: Não Existe.
PRINCIPAIS DESVANTAGENS
● Não trabalha com AJAX de forma nativa;
● Atualização mais lenta, se for comparado a outros
frameworks;
● Indecisão ao seu futuro.
CAKE PHP
O QUE É ?
O CakePHP é um framework de desenvolvimento rápido para PHP,
livre e de código aberto com o objetivo de se criarem rápidas
aplicações web, estruturadas e flexíveis, seguindo o padrão MVC.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
● app: Onde fica toda a aplicação Web;
● lib: Onde fica o core do CakePHP;
● vendors: Pasta responsável por armazenar bibliotecas
externas;
● .htacces e index.php.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
● No arquivo “index.php” (já vêm pronto), são inicializados os
recursos do Cake para carregar a aplicação;
● Em seguida, a requisição HTTP é examinada por um dispatcher
(expedidor) que deverá encaminhar a informação solicitada ao
Controller responsável por determinada ação;
● Ao ser executado, o Controller se comunica com a camada Model
para processar informações de inserção/busca no BD.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
● Ao término da busca ele se comunica com a View
responsável pela requisição HTTP ou o objeto View que
deverá exibir a informação para o usuário, para gerar o
resultado informado pelo Model e processado pelo
Controller;

●

Logo depois desta etapa, a informação chega ao Browser,
transmitindo a informação ao usuário.
ORGANIZAÇÃO, ESTRUTURA E
FUNCIONAMENTO
PRINCIPAIS VANTAGENS
●

Trabalha com AJAX de forma nativa;

●

Comunidade bastante ativa: Repositório 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;

●

Instalação: Não Existe.
PRINCIPAIS DESVANTAGENS
●

Poucas classes de Helpers;

●

Exige mais habilidades do programador, caso queira se trabalhar com Design
Patterns (Padrões de Projeto) ou modificar alguma estrutura do framework;

●

Atualização 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 é necessário dedicar um tempo maior na fase de análise
do projeto.
APLICABILIDADE - CAKE E CI
● Framework bastante indicado para o desenvolvimento de
aplicações web de baixa e média complexidade.
CONCLUSÃO
●

Testar em algum projeto, para analisar o impacto no desenvolvimento, manutenção,
performance, etc;

●

Manter a mente aberta para novas tecnologias;

●

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

●

Aprender a trabalhar com eles e conseguir desenvolvedor possível funcionalidades
não existentes.
REFERÊNCIAS
●
●
●
●
●
●
●
●
●
●

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_(computação)
REFERÊNCIAS
●
●
●
●
●
●
●
●
●
●
●

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/
REFERÊNCIAS
●
●
●
●
●

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

Mais conteúdo relacionado

PDF
Analise frameworks php
PDF
Desenvolvimento Web com CakePHP
PDF
JSF com Primefaces
PDF
Como escolher o Framework Java para web?
PPTX
CakePHP - Configurando o ambiente de desenvolvimento no Windows
PDF
CakePHP - Aprendendo a fazer o primeiro bolo
PDF
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
PDF
Construindo aplicações web java com netbeans
Analise frameworks php
Desenvolvimento Web com CakePHP
JSF com Primefaces
Como escolher o Framework Java para web?
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Aprendendo a fazer o primeiro bolo
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Construindo aplicações web java com netbeans

Mais procurados (20)

PDF
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
PPT
Desenvolvendo aplicações web com o framework cakephp
PPTX
Arquitetura do Framework Spring
PDF
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
PPTX
Introdução a jsf
PPT
JavaServer Faces Produtividade em Desenvolvimento
PPTX
Apresentação jsf 2.0
PPTX
Curso Java Web (JAVA, JSF, JPA)
PPTX
Frameworks em Java
PDF
Java Web Fácil com VRaptor
PDF
JSF 2.0 e ScrumToys
PPT
Mini curso JBC
PDF
PHP Turbinado com CodeIgniter - Conisli 2011
PDF
JavaServer Faces - Desenvolvendo aplicações web com produtividade
PDF
JSF - JavaServer Faces
PDF
Apresentando o Yii Framework
PPTX
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
PPTX
Apresentação maven
PPTX
O framework spring
PDF
Sistema S2DG e Tecnologias Web
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Desenvolvendo aplicações web com o framework cakephp
Arquitetura do Framework Spring
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
Introdução a jsf
JavaServer Faces Produtividade em Desenvolvimento
Apresentação jsf 2.0
Curso Java Web (JAVA, JSF, JPA)
Frameworks em Java
Java Web Fácil com VRaptor
JSF 2.0 e ScrumToys
Mini curso JBC
PHP Turbinado com CodeIgniter - Conisli 2011
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JSF - JavaServer Faces
Apresentando o Yii Framework
Infoeste 2014 - Desenvolvimento de um CMS com Codeigniter Framework(PHP)
Apresentação maven
O framework spring
Sistema S2DG e Tecnologias Web
Anúncio

Destaque (13)

PDF
CakePHP
PDF
Oficina cake php
PDF
Apps Hibridos
PPTX
Instalação CakePHP 2.2.3
PDF
Desenvolva para o mundo com Zend Framework 2
PDF
PDF
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
PDF
CakePHP para iniciantes
PDF
Frameworks da nova Era PHP FuelPHP
PDF
Curso de OO com C# - Parte 01 - Orientação a objetos
PPTX
PPT - A slice of cake php
PDF
Apostila Tutorial CakePHP
PDF
CakePHP
Oficina cake php
Apps Hibridos
Instalação CakePHP 2.2.3
Desenvolva para o mundo com Zend Framework 2
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
CakePHP para iniciantes
Frameworks da nova Era PHP FuelPHP
Curso de OO com C# - Parte 01 - Orientação a objetos
PPT - A slice of cake php
Apostila Tutorial CakePHP
Anúncio

Semelhante a Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend (20)

PPTX
Curso PHP UNIFACS 2014.1 – Frameworks
PDF
Frameworks de Desenvolvimento Web com PHP
PPTX
Impacto dos frameworks PHP
PDF
Frameworks PHP
PDF
Frameworks PHP
PDF
Introdução a Frameworks
PDF
Frameworks PHP @edgarsandi
PDF
Framework usar ou não usar
PDF
Slide Aula - Curso CakePHP
PDF
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
PDF
Microframeworksphp
ODP
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
PDF
Ass - RIA
PDF
Iniciando no Codeigniter
PDF
Iniciando com Codeigniter
PDF
O que move a web atualmente?
PDF
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
PDF
Não deixe seu projeto só nas mãos do framework
PDF
Palestra - Symfony Framework MVC PHP 5
PPTX
PHP 10 CodeIgniter
Curso PHP UNIFACS 2014.1 – Frameworks
Frameworks de Desenvolvimento Web com PHP
Impacto dos frameworks PHP
Frameworks PHP
Frameworks PHP
Introdução a Frameworks
Frameworks PHP @edgarsandi
Framework usar ou não usar
Slide Aula - Curso CakePHP
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
Microframeworksphp
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Ass - RIA
Iniciando no Codeigniter
Iniciando com Codeigniter
O que move a web atualmente?
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Não deixe seu projeto só nas mãos do framework
Palestra - Symfony Framework MVC PHP 5
PHP 10 CodeIgniter

Mais de Thiago Sinésio (8)

PDF
Domain Name System (DNS)
PDF
Treinamento de Feedback
PDF
Metodologia Crystal Clear (Crystal Clear Methodologies)
PDF
Padrão de Projeto GoF Comportamental Mediator
PDF
ANÁLISE DA DIVERGÊNCIA ENTRE A DEMONSTRAÇÃO E A INSTRUÇÃO VERBAL NA AQUISIÇÃO...
PDF
Análise da associação entre tempo de reação e tempo de movimento em crianças
PDF
Efeito da prática sistemática no tempo de reação de crianças
PDF
Apresentação Crystal Clear
Domain Name System (DNS)
Treinamento de Feedback
Metodologia Crystal Clear (Crystal Clear Methodologies)
Padrão de Projeto GoF Comportamental Mediator
ANÁLISE DA DIVERGÊNCIA ENTRE A DEMONSTRAÇÃO E A INSTRUÇÃO VERBAL NA AQUISIÇÃO...
Análise da associação entre tempo de reação e tempo de movimento em crianças
Efeito da prática sistemática no tempo de reação de crianças
Apresentação Crystal Clear

Último (20)

PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Aula sobre banco de dados com firebase db
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Aula sobre banco de dados com firebase db
Émile Durkheim slide elaborado muito bom
Aula sobre desenvolvimento de aplicativos
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 9 - (Threads) Multitarefas.pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26

Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend