Your SlideShare is downloading. ×

Frameworks PHP

7,795
views

Published on

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.

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.

Published in: Technology

3 Comments
18 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,795
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
171
Comments
3
Likes
18
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHPFrameworks Augusto Pascutti
  • 2. @AUGUSTOHPAUGUSTO@PHPSP.ORG.BR
  • 3. AGENDA
  • 4. AGENDA• PHP• Frameworks• Principais Frameworks PHP
  • 5. PHP
  • 6. PHP• Criado em 1995• Versão atual: 5.3.5• Software livre
  • 7. CRESCIMENTO DO PHP
  • 8. CRESCIMENTO DO PHP 1995 • Versão 1.0 • Rasmus Lerdorf • PERL • Personal Home Pages
  • 9. CRESCIMENTO DO PHP 1998 • Versão 3.0 • Zeev + Andi • PHP: Hypertext Preprocessor • Orientação a Objetos • PHPClasses.org
  • 10. CRESCIMENTO DO PHP 2000 • Versão 4.0 • Zend Engine • Estabelecimento no mercado
  • 11. CRESCIMENTO DO PHP 2004 • Versão 5.0 • Zend Engine 2 • Novo modelo de objetos • Melhora na Performance • PDO e SPL
  • 12. CRESCIMENTO DO PHP2009 • Versão 5.3 • Namespaces, Closures, Garbage Collector (Ref. Cicl.), Phar, etc ... • Windows++ • Performance++
  • 13. CRESCIMENTO DO PHP Futuro • Versão 5.4 ou 6.0 • Segurança • Traits • Type Hints • “Briguinhas”: • Annotations • Unicode
  • 14. E QUANTO AO SEUCRESCIMENTO ?
  • 15. ONDE VOCÊ ESTÁ? Sobrinho • Copiou, • Colou, • Funcionou? • Beleza!Autor: Flávio Gomes da Silva Lisboa
  • 16. ONDE VOCÊ ESTÁ? Júnior • Pouca experiência • Muita força de vontade • Curiosidade
  • 17. ONDE VOCÊ ESTÁ? Pleno • Conhecem suas limitações • Buscam soluções • Aprendem com seus erros
  • 18. ONDE VOCÊ ESTÁ?Sênior • Segurança em seu trabalho • Conhecem as soluções • Muita experiência • Aprendem com erros alheios
  • 19. ONDE VOCÊ ESTÁ?Chuck Norris • Forçam o desenvolvimento do PHP • Contribuem • Distribuem
  • 20. ONDE VOCÊ ESTÁ?Core developers • Fazem sua própria cerveja • Não dormem • Criam o que demoramos a aprender • Estão sempre dispostos a ajudar
  • 21. POR QUE ELE TA FALANDO ISSO ?
  • 22. SÓ VOCÊ PODE SEAJUDAR.
  • 23. SUAEVOLUÇÃODEPENDE SÓ DE VOCÊ.
  • 24. FRAMEWORKS
  • 25. FRAMEWORKS “... são uma abstração queune códigos comuns entrevários projetos provendo uma funcionalidade genérica.” Wikipedia
  • 26. EXISTEM TIPOS?
  • 27. EXISTEM TIPOS?• Bibliotecas (Ex: Pear, Zeta Components)• Frameworks • Restritivos (Ex: CakePHP) • Baixo Acoplamento (Ex: Zend Framework)
  • 28. PORQUE ADOTAR UM?
  • 29. PORQUE ADOTAR UM?• Código testado/testável• Grande base de uso• Experiência agregada• Foque no que importa: Regras de Negócio
  • 30. QUEM USA?
  • 31. QUEM USA?
  • 32. PORQUE NÃO ADOTAR?
  • 33. PORQUE NÃO ADOTAR?• Performance• Curva de aprendizado• Dependência
  • 34. “FRAMEWORKS PHP POSSUEMUMA PERFORMANCE POBRE ...” Rasmus Lerdorf, 2005
  • 35. COMPARADOSAO PHP (PURO), SIM ...
  • 36. ... MAS E AMANUTENÇÃO DESSE CÓDIGO?
  • 37. “ ... 97% DO TEMPO, A OTIMIZAÇÃOPREMATURA É A RAIZ DE TODO MAL.” Donald Knuth
  • 38. “ ... 97% DO TEMPO, A OTIMIZAÇÃOPREMATURA É A RAIZ DE TODO MAL.” Donald Knuth
  • 39. HARDWARE, HOJE, É MUITOMAIS BARATO DO QUE AS HORAS DE UMPROFISSIONAL
  • 40. O QUE ELE FARÁ POR VOCÊ• Agiliza desenvolvimento• Melhora segurança• Melhora establidade
  • 41. O QUE ELE NÃO FARÁ• Melhorará seu código• Evitará que cometa erros• Garantirá o sucesso do seu projeto
  • 42. TER TUDO QUE VOCÊ PRECISAPRA FAZERUMA CASA...
  • 43. NÃO SIGNIFICA QUE VOCÊ É CAPAZ DECONSTRUIR UMA.
  • 44. COMO ESCOLHER?
  • 45. COMO ESCOLHER?• Quem é o líder?• Documentação• Tamanho da comunidade• Atividade do Projeto• Comprometimento com o PHP
  • 46. QUEM É O LÍDER?
  • 47. 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
  • 48. O BUG #50696 E VOCÊ!
  • 49. 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)
  • 50. Eu sou o Rasmus!
  • 51. E eu o programador “afetado”
  • 52. Esse comportamento ... é um bug certo?
  • 53. Não. Meu! Esse seu código não geraWARNINGS não!? Meio non-sense ele!
  • 54. Ok. Você não me entendeu.
  • 55. Isso funcionava desde o princípio!
  • 56. Eu entendi. Mas mudamos isso pra corrigir bugs esquisitos em casos esquisitos ....
  • 57. Resumindo, vocês me fude***!
  • 58. Qual a razão disso? Você acha que alguém tem NULL reais na conta?
  • 59. Não! Você pode corrigir tudo isso assim ...
  • 60. Meu, vão levar MESES pra mudar tudo!
  • 61. Você ta sendo um pouco dramático ...
  • 62. Meu, você não tem noção do que você ta falando.
  • 63. Trabalho numa grande organização! Você não tem noção.
  • 64. Acredite. Eu tenho.
  • 65. Entendi. O seu ambiente é maior..Provavelmente muito mais crítico!
  • 66. Cara, não tem como você passar pra alguém mais capacitado?
  • 67. Quem dera eu tivesse amigo. Quem dera eu tivesse.
  • 68. DOCUMENTAÇÃO
  • 69. 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?
  • 70. COMUNIDADE
  • 71. 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 ...)
  • 72. ATIVIDADE
  • 73. 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?
  • 74. ATIVIDADE• Como ver isso? • Frequência de commits • Roadmap • Sistema de tickets/bugs • Quantos abertos? • Quantos resolvidos? • Ohloh
  • 75. COMPROMETIMENTO COM PHP
  • 76. 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?
  • 77. EU TENHO O MEUFRAMEWORK
  • 78. CUIDADO
  • 79. 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?
  • 80. 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
  • 81. PRINCIPAIS FRAMEWORKS
  • 82. 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
  • 83. QUEM SÃOELES?
  • 84. QUAL APOPULARIDADE DE CADA?
  • 85. Buscas no Google100 90 80 70 60 Zend Framework CakePHP Symfony Code Igniter 50 40 30 20 10 0 2006 2007 2008 2009 2010 Fonte: Google Trends
  • 86. TwtPool40302010 0 Usam Zend Framework CakePHP Code Igniter Symfony Outro http://twtpoll.com/r/d1ulz2
  • 87. VAMOS AOS NOSSOSCONCORRENTES
  • 88. http://cakephp.org/
  • 89. 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
  • 90. CAKEPHP• Restritivo• Código fonte poluído • Muito grande. Difícil manutenção • Difícil de testar
  • 91. QUEM É O LÍDER?
  • 92. QUEM É O LÍDER?• Cake Software Foundation• Antigo core-developer Nate Abele (agora Lithium)• Core atual • Grupo eleito meritocraticamente
  • 93. COMUNIDADE
  • 94. COMUNIDADE• Muito próxima do desenvolvimento• Portais do próprio CakePHP • Bakery, Google Groups, Planet, Tv• Comunidade brasileira madura e forte• @renansaddan (Core developer brasileiro)
  • 95. ATIVIDADE
  • 96. ATIVIDADE• Atual 1.3.6• Futura 2.0 (já disponível, instável) • Compatível só com PHP 5
  • 97. COMPROMETIMENTO COM PHP
  • 98. 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)
  • 99. http://framework.zend.com/
  • 100. 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 >
  • 101. 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)
  • 102. QUEM É O LÍDER?
  • 103. QUEM É O LÍDER?• Zend (empresa mantenedora do PHP)• Matt Weier O’Phinney (funcionário Zend)
  • 104. COMUNIDADE
  • 105. COMUNIDADE• 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)
  • 106. ATIVIDADE
  • 107. ATIVIDADE• Atual 1.11.2• Futura 2.0 (em desenvolvimento, passos largos) • Compatível só com PHP 5.3 >
  • 108. COMPROMETIMENTO COM PHP
  • 109. 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)
  • 110. http://symfony-project.org/
  • 111. 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 >
  • 112. SYMFONY• Mais configurações que Cake e Code Igniter• Curva de aprendizado um pouco maior• Mudanças repentinas no projeto já ocorreram
  • 113. QUEM É O LÍDER?
  • 114. QUEM É O LÍDER?• Fabien Potencier • Atual “Rock Star” do PHP • Seu lema atual: “Dependecy Injection”• Sensio Labs (Empresa, presta suporte)
  • 115. COMUNIDADE
  • 116. COMUNIDADE• Pequena relativa aos demais• Amparada pelo projeto • Diretório de plugins, bloggers, Wiki
  • 117. ATIVIDADE
  • 118. 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)
  • 119. COMPROMETIMENTO COM PHP
  • 120. 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
  • 121. http://codeigniter.com/
  • 122. 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
  • 123. QUEM É O LÍDER?
  • 124. QUEM É O LÍDER?• Ellis Lab • Usam o “CI” como base para produtos próprios• Problemas recorrentes com a comunidade
  • 125. COMUNIDADE
  • 126. COMUNIDADE• Próxima do desenvolvimento do framework• Decisões finais sempre da Ellis Lab• Madura e grande (também no Brasil)
  • 127. ATIVIDADE
  • 128. 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)
  • 129. COMPROMETIMENTO COM PHP
  • 130. 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
  • 131. RESUMINDO
  • 132. VOCÊ QUERDESENVOLVER AS COISAS RÁPIDO
  • 133. BAIXA CURVA DEAPRENDIZADO E MUITO RESULTADO
  • 134. ESSES SÃO OS CARASPerformance++ Produção++
  • 135. VOCÊ QUER ALTOCONTROLE SOBRE TUDO
  • 136. CÓDIGO BEM FEITO EDOCUMENTADO
  • 137. ESSES É O CARA
  • 138. VOCÊ SE PREOCUPACOM TUDO ISSO?
  • 139. QUER OMEIO-TERMO?
  • 140. ESSES É O CARA