frameworks php

146

Click here to load reader

Upload: augusto-pascutti

Post on 26-May-2015

7.895 views

Category:

Technology


2 download

DESCRIPTION

Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.

TRANSCRIPT

Page 1: Frameworks PHP

Augusto PascuttiFrameworksPHP

Page 3: Frameworks PHP

AGENDA

Page 4: Frameworks PHP

AGENDA

• PHP

• Frameworks

• Principais Frameworks PHP

Page 5: Frameworks PHP

PHP

Page 6: Frameworks PHP

PHP

• Criado em 1995

• Versão atual: 5.3.5

• Software livre

Page 7: Frameworks PHP

CRESCIMENTO DO PHP

Page 8: Frameworks PHP

CRESCIMENTO DO PHP

1995

• Versão 1.0

• Rasmus Lerdorf

• PERL

• Personal Home Pages

Page 9: Frameworks PHP

CRESCIMENTO DO PHP

1998

• Versão 3.0

• Zeev + Andi

• PHP: Hypertext Preprocessor

•Orientação a Objetos

• PHPClasses.org

Page 10: Frameworks PHP

CRESCIMENTO DO PHP

2000

• Versão 4.0

• Zend Engine

• Estabelecimento no mercado

Page 11: Frameworks PHP

CRESCIMENTO DO PHP

2004

• Versão 5.0

• Zend Engine 2

• Novo modelo de objetos

•Melhora na Performance

• PDO e SPL

Page 12: Frameworks PHP

CRESCIMENTO DO PHP

2009

• Versão 5.3

•Namespaces, Closures, Garbage Collector (Ref. Cicl.), Phar, etc ...

•Windows++

• Performance++

Page 13: Frameworks PHP

CRESCIMENTO DO PHP

• Versão 5.4 ou 6.0

• Segurança

• Traits

• Type Hints

• “Briguinhas”:

• Annotations

• Unicode

Futuro

Page 14: Frameworks PHP

E QUANTO AO SEU

CRESCIMENTO ?

Page 15: Frameworks PHP

ONDE VOCÊ ESTÁ?

Sobrinho

• Copiou,

• Colou,

• Funcionou?

• Beleza!Autor: Flávio Gomes da Silva Lisboa

Page 16: Frameworks PHP

ONDE VOCÊ ESTÁ?

Júnior

• Pouca experiência

•Muita força de vontade

• Curiosidade

Page 17: Frameworks PHP

ONDE VOCÊ ESTÁ?

Pleno

• Conhecem suas limitações

• Buscam soluções

• Aprendem com seus erros

Page 18: Frameworks PHP

ONDE VOCÊ ESTÁ?

Sênior

• Segurança em seu trabalho

• Conhecem as soluções

•Muita experiência

• Aprendem com erros alheios

Page 19: Frameworks PHP

ONDE VOCÊ ESTÁ?

Chuck Norris

• Forçam o desenvolvimento do PHP

• Contribuem

• Distribuem

Page 20: Frameworks PHP

ONDE VOCÊ ESTÁ?

• Fazem sua própria cerveja

• Não dormem

• Criam o que demoramos a aprender

• Estão sempre dispostos a ajudar

Core developers

Page 21: Frameworks PHP

POR QUE ELE TA FALANDO ISSO ?

Page 22: Frameworks PHP

SÓ VOCÊ PODE SE

AJUDAR.

Page 23: Frameworks PHP

SUA EVOLUÇÃO DEPENDE SÓ

DE VOCÊ.

Page 24: Frameworks PHP

FRAMEWORKS

Page 25: Frameworks PHP

FRAMEWORKS

“... são uma abstração que une códigos comuns entre vários projetos provendo uma

funcionalidade genérica.”

Wikipedia

Page 26: Frameworks PHP

EXISTEM TIPOS?

Page 27: Frameworks PHP

EXISTEM TIPOS?

• Bibliotecas (Ex: Pear, Zeta Components)

• Frameworks

• Restritivos (Ex: CakePHP)

• Baixo Acoplamento (Ex: Zend Framework)

Page 28: Frameworks PHP

PORQUE ADOTAR UM?

Page 29: Frameworks PHP

PORQUE ADOTAR UM?

• Código testado/testável

• Grande base de uso

• Experiência agregada

• Foque no que importa: Regras de Negócio

Page 30: Frameworks PHP

QUEM USA?

Page 31: Frameworks PHP

QUEM USA?

Page 32: Frameworks PHP

PORQUE NÃO ADOTAR?

Page 33: Frameworks PHP

PORQUE NÃO ADOTAR?

• Performance

• Curva de aprendizado

• Dependência

Page 34: Frameworks PHP

“FRAMEWORKS PHP POSSUEM UMA PERFORMANCE POBRE ...”

Rasmus Lerdorf, 2005

Page 35: Frameworks PHP

COMPARADOS

AO PHP (PURO),

SIM ...

Page 36: Frameworks PHP

... MAS E A

MANUTENÇÃO

DESSE CÓDIGO?

Page 37: Frameworks PHP

“ ... 97% DO TEMPO, A OTIMIZAÇÃO PREMATURA É A RAIZ DE TODO MAL.”

Donald Knuth

Page 38: Frameworks PHP

“ ... 97% DO TEMPO, A OTIMIZAÇÃO PREMATURA É A RAIZ DE TODO MAL.”

Donald Knuth

Page 39: Frameworks PHP

HARDWARE, HOJE, É MUITO

MAIS BARATO DO QUE AS

HORAS DE UM PROFISSIONAL

Page 40: Frameworks PHP

O QUE ELE FARÁ POR VOCÊ

•Agiliza desenvolvimento

•Melhora segurança

•Melhora establidade

Page 41: Frameworks PHP

O QUE ELE NÃO FARÁ

•Melhorará seu código

• Evitará que cometa erros

• Garantirá o sucesso do seu projeto

Page 42: Frameworks PHP

TER TUDO QUE VOCÊ PRECISA

PRA FAZER UMA CASA...

Page 43: Frameworks PHP

NÃO SIGNIFICA QUE VOCÊ É CAPAZ DE

CONSTRUIR UMA.

Page 44: Frameworks PHP

COMO ESCOLHER?

Page 45: Frameworks PHP

COMO ESCOLHER?

•Quem é o líder?

• Documentação

• Tamanho da comunidade

•Atividade do Projeto

• Comprometimento com o PHP

Page 46: Frameworks PHP

QUEM É O LÍDER?

Page 47: Frameworks PHP

QUEM É O LÍDER?

• Empresa, Pessoa ou Grupo

• Você vai depender dele/dela

• Com que frequência ele muda de idéia? (BC)

• Sucesso do projeto (Framework) depende disso

Page 48: Frameworks PHP

O BUG #50696 E VOCÊ!

Page 49: Frameworks PHP

O BUG #50696 E VOCÊ!

•Depois da atualização para o PHP 5.3

• number_format(“”, 0) = null

•Antes da atualização

• number_format(“”,0) = 0 (zero)

Page 50: Frameworks PHP

Eu sou o Rasmus!

Page 51: Frameworks PHP

E eu o programador “afetado”

Page 52: Frameworks PHP

Esse comportamento ... é um bug certo?

Page 53: Frameworks PHP

Não. Meu! Esse seu código não gera WARNINGS não!? Meio non-sense ele!

Page 54: Frameworks PHP

Ok. Você não me entendeu.

Page 55: Frameworks PHP

Isso funcionava desde o princípio!

Page 56: Frameworks PHP

Eu entendi. Mas mudamos isso pra corrigir bugs esquisitos em casos esquisitos ....

Page 57: Frameworks PHP

Resumindo, vocês me fude***!

Page 58: Frameworks PHP

Qual a razão disso? Você acha que alguém tem NULL reais na conta?

Page 59: Frameworks PHP

Não! Você pode corrigir tudo isso assim ...

Page 60: Frameworks PHP

Meu, vão levar MESES pra mudar tudo!

Page 61: Frameworks PHP

Você ta sendo um pouco dramático ...

Page 62: Frameworks PHP

Meu, você não tem noção do que você ta falando.

Page 63: Frameworks PHP

Trabalho numa grande organização! Você não tem noção.

Page 64: Frameworks PHP

Acredite. Eu tenho.

Page 65: Frameworks PHP

Entendi. O seu ambiente é maior.. Provavelmente muito mais crítico!

Page 66: Frameworks PHP

Cara, não tem como você passar pra alguém mais capacitado?

Page 67: Frameworks PHP

Quem dera eu tivesse amigo. Quem dera eu tivesse.

Page 68: Frameworks PHP

DOCUMENTAÇÃO

Page 69: Frameworks PHP

DOCUMENTAÇÃO

• Tão fundamental quanto o código que move o framework

•Atualizada regularmente?

• Tão extensa quanto o projeto?

• É objetiva e bem organizada?

Page 70: Frameworks PHP

COMUNIDADE

Page 71: Frameworks PHP

COMUNIDADE• É a alternativa à documentação

•Quanto tempo ela tem?

•Quão forte ela é?

• Ela é escutada pelo(s) líder(es)?

•Quantas pessoas você conhece que usam o framework?

• Google!

•Qual a relação dela com o projeto? (Commits, etc ...)

Page 72: Frameworks PHP

ATIVIDADE

Page 73: Frameworks PHP

ATIVIDADE

•Qual a frequêcia de desenvolvimento?

• Diária é o que eu esperaria

•Quão rápido um bug é encontrado/corrigido?

•Quão frequente são os novos releases?

•Quais são os planos futuros?

Page 74: Frameworks PHP

ATIVIDADE

• Como ver isso?

• Frequência de commits

• Roadmap

• Sistema de tickets/bugs

•Quantos abertos?

•Quantos resolvidos?

•Ohloh

Page 75: Frameworks PHP

COMPROMETIMENTO COM PHP

Page 76: Frameworks PHP

COMPROMETIMENTO COM PHP

•O projeto acompanha as mudanças do PHP?

•Qual a relação dos líderes com o desenvolvimento do PHP?

•Quão informados eles estão sobre a direção do PHP?

Page 77: Frameworks PHP

EU TENHO O MEU

FRAMEWORK

Page 78: Frameworks PHP

CUIDADO

Page 79: Frameworks PHP
Page 80: Frameworks PHP

SEU FRAMEWORK

• Fora você, os outros sofrerão com a curva de aprendizado

• Documentação?

• Base de usuários?

• Ajuda?

• Testes Unitários?

• Boas práticas?

Page 81: Frameworks PHP

SEU FRAMEWORK

• Válido em poucos casos (poucos mesmo)

• Aplicações específicas

• Base de acesso é MUITO grande (Ex: Facebook)

• Processamento de dados MUITO grande

• Sempre válido como aprendizado

Page 82: Frameworks PHP

PRINCIPAIS FRAMEWORKS

Page 83: Frameworks PHP

PRINCIPAIS FRAMEWORKS

•Mais tempo de casa

•Maior base de usuários

•Mais cases de sucesso

• Respeitam os usuários

• Todos são MVC

• Satisfazem os requisitos que levantei a pouco

•Ótima documentação e Atividade

Page 84: Frameworks PHP

QUEM SÃO

ELES?

Page 85: Frameworks PHP
Page 86: Frameworks PHP
Page 87: Frameworks PHP
Page 88: Frameworks PHP
Page 89: Frameworks PHP

QUAL A POPULARIDADE

DE CADA?

Page 90: Frameworks PHP

0

10

20

30

40

50

60

70

80

90

100

2006 2007 2008 2009 2010

Buscas no Google

Zend Framework CakePHP Symfony Code Igniter

Fonte: Google Trends

Page 91: Frameworks PHP

0

10

20

30

40

Usam

TwtPool

Zend Framework CakePHP Code Igniter Symfony Outro

http://twtpoll.com/r/d1ulz2

Page 92: Frameworks PHP

VAMOS AOS NOSSOS

CONCORRENTES

Page 93: Frameworks PHP

http://cakephp.org/

Page 94: Frameworks PHP

CAKEPHP

• Produção rápida (Bake)

• Baixa curva de aprendizado (Piece of Cake)

• Equivalente ao Rails

• Active Record

• PHP 4.3.2

• Funciona em qualquer hospedagem

Page 95: Frameworks PHP

CAKEPHP

• Restritivo

• Código fonte poluído

•Muito grande. Difícil manutenção

• Difícil de testar

Page 96: Frameworks PHP

QUEM É O LÍDER?

Page 97: Frameworks PHP

QUEM É O LÍDER?

• Cake Software Foundation

• Antigo core-developer Nate Abele (agora Lithium)

• Core atual

• Grupo eleito meritocraticamente

Page 98: Frameworks PHP

COMUNIDADE

Page 99: Frameworks PHP

•Muito próxima do desenvolvimento

• Portais do próprio CakePHP

• Bakery, Google Groups, Planet, Tv

• Comunidade brasileira madura e forte

•@renansaddan (Core developer brasileiro)

COMUNIDADE

Page 100: Frameworks PHP

ATIVIDADE

Page 101: Frameworks PHP

ATIVIDADE

• Atual 1.3.6

• Futura 2.0 (já disponível, instável)

• Compatível só com PHP 5

Page 102: Frameworks PHP

COMPROMETIMENTO COM PHP

Page 103: Frameworks PHP

COMPROMETIMENTO COM PHP

• Pequeno

•Muito tempo compatível com versão 4 (ainda é)

• Possuem tendências de seguir Strict Standards

• Não seguem as recomendações (PSR)

Page 104: Frameworks PHP

http://framework.zend.com/

Page 105: Frameworks PHP

ZEND FRAMEWORK

• Baixo acoplamento (Componentes)

• Código fonte limpo: Design Patterns

• Empresas envolvidas: Google, Adobe

• Componentes (centenas)

•Muito testado! Testes, Testes e mais Testes!

• Enterprise focused

• PHP 5.2 >

Page 106: Frameworks PHP

ZEND FRAMEWORK

• Não possui camada de Model explícita

• Configurações e mais configurações (Muitas. Mesmo!)

• Curva de aprendizado variável

• Pouca documentação de uso na forma Full Stack

•Má utilização do framework (geralmente)

Page 107: Frameworks PHP

QUEM É O LÍDER?

Page 108: Frameworks PHP

QUEM É O LÍDER?

• Zend (empresa mantenedora do PHP)

•Matt Weier O’Phinney (funcionário Zend)

Page 109: Frameworks PHP

COMUNIDADE

Page 110: Frameworks PHP

•Muito próxima do desenvolvimento

• Influencia ativamente no desenvolvimento

• Propostas, Bug-hunts, Patches, etc ...

•Muito grande nos últimos 2 anos

• Um tanto quanto imatura ainda (opinião pessoal)

COMUNIDADE

Page 111: Frameworks PHP

ATIVIDADE

Page 112: Frameworks PHP

ATIVIDADE

• Atual 1.11.2

• Futura 2.0 (em desenvolvimento, passos largos)

• Compatível só com PHP 5.3 >

Page 113: Frameworks PHP

COMPROMETIMENTO COM PHP

Page 114: Frameworks PHP

COMPROMETIMENTO COM PHP

• Não preciso comentar, preciso?

• Strict Standards

• Versão 1.x ( PHP 5>)

• Versão 2.x (PHP 5.3>)

• PHP Standards Recomendations (PSR)

Page 116: Frameworks PHP

SYMFONY

• Segurança e boas práticas

• Código fonte limpo: Design Patterns

• Desenvolvimento rápido (ferramenta CLI)

•ORM (Doctrine ou Propel)

• PHP 5.2 >

Page 117: Frameworks PHP

SYMFONY

•Mais configurações que Cake e Code Igniter

• Curva de aprendizado um pouco maior

•Mudanças repentinas no projeto já ocorreram

Page 118: Frameworks PHP

QUEM É O LÍDER?

Page 119: Frameworks PHP

QUEM É O LÍDER?

• Fabien Potencier

• Atual “Rock Star” do PHP

• Seu lema atual: “Dependecy Injection”

• Sensio Labs (Empresa, presta suporte)

Page 120: Frameworks PHP

COMUNIDADE

Page 121: Frameworks PHP

• Pequena relativa aos demais

• Amparada pelo projeto

• Diretório de plugins, bloggers, Wiki

COMUNIDADE

Page 122: Frameworks PHP

ATIVIDADE

Page 123: Frameworks PHP

ATIVIDADE

• Atual 1.4

• Futura 2.0 (em desenvolvimento, programada para 03/2011)

• Compatível só com PHP 5.3 >

• Performance++

•Muito baseada no Cocoa (Apple)

Page 124: Frameworks PHP

COMPROMETIMENTO COM PHP

Page 125: Frameworks PHP

COMPROMETIMENTO COM PHP

•Muito próxima

• Strict Standards

• PHP Standards Recomendations (PSR)

• Fabien faz parte do próprio grupo

• Contribuem ativamente com o desenvolvimento do PHP

Page 126: Frameworks PHP

http://codeigniter.com/

Page 127: Frameworks PHP

CODE IGNITER

• Small footprint

• Restritivo (não tanto quanto Cake)

• Baixa curva de aprendizado

• Performance

•ORM próprio

• PHP 4.3.2 >

• Funciona em qualquer hospedagem

Page 128: Frameworks PHP

QUEM É O LÍDER?

Page 129: Frameworks PHP

QUEM É O LÍDER?

• Ellis Lab

• Usam o “CI” como base para produtos próprios

• Problemas recorrentes com a comunidade

Page 130: Frameworks PHP

COMUNIDADE

Page 131: Frameworks PHP

• Próxima do desenvolvimento do framework

• Decisões finais sempre da Ellis Lab

•Madura e grande (também no Brasil)

COMUNIDADE

Page 132: Frameworks PHP

ATIVIDADE

Page 133: Frameworks PHP

ATIVIDADE

• Atual 1.7.3

• Futura 2.0 (em desenvolvimento)

• Compatível com PHP 5.2 >

• Branches separados

• Comunidade, mas ainda controlada pela Ellis Lab (Reactor)

• Ellis Lab (Core)

Page 134: Frameworks PHP

COMPROMETIMENTO COM PHP

Page 135: Frameworks PHP

COMPROMETIMENTO COM PHP

• Pequeno

• Sem propostas (atuais e futuras) de seguir Strict Standards

• Não seguem as recomendações (PSR)

• Não contribuem muito com o desenvolvimento da linguagem

Page 136: Frameworks PHP

RESUMINDO

Page 137: Frameworks PHP

VOCÊ QUER DESENVOLVER

AS COISAS RÁPIDO

Page 138: Frameworks PHP

BAIXA CURVA DE

APRENDIZADO E MUITO

RESULTADO

Page 139: Frameworks PHP

ESSES SÃO OS CARAS

Produção++Performance++

Page 140: Frameworks PHP

VOCÊ QUER ALTO

CONTROLE SOBRE TUDO

Page 141: Frameworks PHP

CÓDIGO BEM FEITO E

DOCUMENTADO

Page 142: Frameworks PHP

ESSES É O CARA

Page 143: Frameworks PHP

VOCÊ SE PREOCUPA

COM TUDO ISSO?

Page 144: Frameworks PHP

QUER O MEIO-TERMO?

Page 145: Frameworks PHP

ESSES É O CARA

Page 146: Frameworks PHP