Cakephp 2.0 - O que mudou

1.059 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.059
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
31
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cakephp 2.0 - O que mudou

  1. 1. CakePHP 2.0 Irá abalar o seu mundo! Felipe Vargas Rigo - NTI – UFMS Baseado nos slides de Graham Weldon
  2. 2. Cake ?
  3. 3. The Cake Is A Lie!
  4. 4. Ops…
  5. 5. O que ? MVC !
  6. 6. CakePHP√ 2.0 ?
  7. 7. Suporte ao PHP Adios PHP 4
  8. 8. Suporte ao PHPAbandonado o suporte a PHP 4Suportando PHP 5.2.6 e superior Depois.. PHP 5.3 e superior
  9. 9. AtalhosRemovidos: array_combine()e() => echo cache() => Cachea() => array array_diff_key()aa() => assoc array array_intersect_key()r() => str_replace http_build_query()ife() => if / ternary getMicrotime()params() r() => str_replaceup() => strtoupper $TIME_STARTlow() => strtolowerfile_put_contents() Constante PHP5uses() => App
  10. 10. Teste de Unidade Sai o SimpleTest Entra o PHPUnit
  11. 11. Teste de Unidade Indiscutivelmente uma das maiores mudanças PHPUnit Prove um melhor suporte ao PHP 5 do que o SimpleTest Mantido mais ativamente Fácil de integrar com o CruiseControl Padrão para Testes de Unidade no PHP Instala junto com o PEAR Mais rápido
  12. 12. Teste de Unidade Mais poderoso Mais legal Mais? http://phpunit.de startTest() e endTest() serão descontinuados (deprecated)
  13. 13. Teste de Unidade Asserções ligeiramente diferente Fornecido compatibilidade com código antigo Exemplo: $this->assertEqual Agora: $this->assertEquals
  14. 14. Teste de Unidade Não existem mais grupos de testes Mas há um modo de fazer isso com PHP Unit
  15. 15. Coleções Organizando
  16. 16. ColeçõesBehaviors (Comportamentos)Components (Componentes)Helpers (Ajudantes)Shells (Linha de comando)
  17. 17. Componentes
  18. 18. Componentes
  19. 19. ComponentesA classe base Component agora é obrigatóriapara todos componentesDeve-se atualizar os componentes e seusconstrutores, já que os 2 mudaramFicou mais intuitivoMenor necessidade de procurar pordocumentação
  20. 20. SPLUsado onde foi possível
  21. 21. SPLStandard PHP Library – Biblioteca padrão PHPFornece interações com Arquivos e PastasPossui Classes legais para muitas coisasNão é necessário reimplementar no núcleoO CakePHP 1.x estava a frente do seu tempoO PHP o alcançouHora de cortar a gordura
  22. 22. Não-SPLNovamente, não reinvente a rodaRemovido código duplicado como codificaçãoJSONAgora pode contar com a funcionalidadefornecida com o PHP
  23. 23. Exceções
  24. 24. ExceçõesO uso de exceções para indicar erros no núcleoMais fácil de controlarMais “OO”Removido o cakeError
  25. 25. ExceçõesCrie manipuladores personalizados para cadaexceçãoControle o que acontece após a exceçãoExemplo:MediaViewSe arquivo não encontrado: Trate de maneira inteligente
  26. 26. RequestResponseRefatorando, centralizando.
  27. 27. Request / Response O Request representa uma requisição chegando Ele substitui funcionalidades antes incluidas em Controller, Dispatcher, RequestHandler e $this->params Implementação do ArrayAccess para manter compatibilidade com versões anteriores
  28. 28. Request / Response Protege usuários deles mesmos Protege desenvolvedores dos usuários Protege desenvolvedores da estupidez Encapsula tanto a requisição quanto a resposta de maneira a fornecer um local central para lidar com eles, porém mantendo uma flexibilidade
  29. 29. Sessões
  30. 30. SessõesRemovido código duplicado (DRY)Não deveria ser sempre incluida (1.3 fix)Manipulação de dados pelo ModeloAcessível de qualquer lugarPermite personalização de maneira simplesSeparado o Caching, Database, etc.
  31. 31. Sessões SessionHandlerDatabase Cache PHP
  32. 32. Sessões SessionHandlerDatabase Cache PHP
  33. 33. Sessões SessionHandlerDatabase Cache PHP Seu Mecanismo Louco
  34. 34. Sessões SessionHandlerDatabase Cache PHP Interface que manipula Seu Mecanismo Louco a Sessão do Cake
  35. 35. Peraí!Isso parece familiar
  36. 36. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  37. 37. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  38. 38. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Seu Super Mecanismo
  39. 39. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Seu Super Mecanismo JsBaseEngineHelper
  40. 40. Carregamento Tardio
  41. 41. Carregamento Tardio Objetos aninhados (alguns deles) Componentes Ajudantes (Helpers) Tarefas (Tasks) Fixtures Otimização barata Carrega apenas quando você precisa
  42. 42. XMLFaze-lo faz sentido!
  43. 43. XMLAté onde fazer XML faz sentido.... foi feitoXML no 1.x era muito particular do CakePHPNão era fácil integrarNão tratava corretamente os namespacesNão permitia nós ordenadosConstruido sobre o SimpleXMLMáis RápidoGenérico
  44. 44. ConsoleO shell se tornou mais populardo que planejado inicialmente
  45. 45. ConsoleAjuda na geração facilitada Melhor para usuários de plugins, assim como seus desenvolvedoresTexto do console colorido (ui!) Fácil identificação de ocorrências e errosSuporte a saída “verbosa”Os Shells estão sendo usados: reestruturado: app/console/ Movido de: app/vendors/Permite melhor configuração do caminho doconsole
  46. 46. VisõesHabilitando maior controle de plugins, e reordenação
  47. 47. VisõesOs Callbacks mudaramConforme o framework amadureceu: Pessoas fizeram novos plugins Os Plugins precisavam de controle Queria-se alterar a saídaOrdem das operações foi mudada
  48. 48. Visõesavaliar scriptsavaliar o conteúdobeforeLayout()beforeRender()render()
  49. 49. VisõesbeforeLayout()beforeRender()avaliar scriptsavaliar o conteúdorender()
  50. 50. EmailEnvie Emails de qualquer lugar! É o futuro!
  51. 51. EmailEra restrito ao uso do Controlador com umComponente ... ou um hack terrível para habilita-lo em outros lugaresAgora é uma biblioteca do núcleoUse em qualquer lugarHá Wrappers para prover usos nos modelos econtroladoresSimples, e efetivo
  52. 52. NovasFuncionalidades
  53. 53. PDOJá era hora!!
  54. 54. PDOSim, inacreditávelmente, sim!datasources do PDO agora disponíveis na 2.0Trabalho com a Microsoft para suportar oMSSQL foi finalizado com os novos drivers doPDO
  55. 55. PDOTodos bancos de dados trabalham da mesma formaTroca de SGBD de maneira simplesFornece garantias para troca de contexto: Ambiente de Desenvolvimento Ambiente de Produção
  56. 56. Reescrevendo URLs Simplificando requisição de dados
  57. 57. Reescrevendo URLs Anteriormente: /index.php?url=controller/action/data Agora: /index.php/controller/action/data O que isso significa para os desenvolvedores?
  58. 58. Reescrevendo URLs Simplifica a estrutura interna para reescrita Operações entre servidores mais fácil Diversos mecanismos de reescrita Instalações que não sejam apache
  59. 59. Parametros Nomeados Agora permite que arrays sejam passados Permite até arrays aninhados
  60. 60. Parametros Nomeados
  61. 61. Autenticação
  62. 62. AutenticaçãoCompletamente refatoradaNão faz mais hash automático das senhasAuthentication handlersObjetos Personalizados de autenticaçãoLogar um usuário manualmenteBasic AuthenticationDigest AuthenticationStateless Authentication
  63. 63. Estrutura de Arquivos E carga de classes
  64. 64. Estrutura de Arquivos PSR-0 http://blog.montmere.com/2011/09/21/psr-0- final-proposal/ App::import => App::uses Isso habilita carregar de maneira tardia
  65. 65. Nomes de Arquivos• my_things_controller.php => MyThingsController.php• form.php (um Helper) => FormHelper.php• session.php (um Componente) => SessionComponent.php
  66. 66. Nomes de PastasPastas CamelCased:Config Model/BehaviorConsole PluginController TestController/Component VendorLib ViewLocale View/HelperModel Pastas caixa baixa: tmp webroot
  67. 67. DebugandoVocê estava esperando por isso…
  68. 68. DebugandoNão há mais saidas HTML no console dedebuggingUsa blocos Ascii para ficar distinto
  69. 69. Mais DetalhesGuia de Migração p/ Cake 2.0: https://github.com/cakephp/docs/blob/master/e n/appendices/2-0-migration-guide.rstLighthouse app http://cakephp.lighthouseapp.com/projects/426 48-cakephp
  70. 70. Pegue o códigohttp://cakephp.orghttp://github.com/cakephp/cakephp Branch: 2.0
  71. 71. Perguntas?Comentários? Abraços? Baseado nos slides de Graham Weldon, disponíveis em: http://www.slideshare.net/predominant

×