Cakephp 2.0 - O que mudou

  • 846 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
30
Comments
0
Likes
2

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. CakePHP 2.0 Irá abalar o seu mundo! Felipe Vargas Rigo - NTI – UFMS Baseado nos slides de Graham Weldon
  • 2. Cake ?
  • 3. The Cake Is A Lie!
  • 4. Ops…
  • 5. O que ? MVC !
  • 6. CakePHP√ 2.0 ?
  • 7. Suporte ao PHP Adios PHP 4
  • 8. Suporte ao PHPAbandonado o suporte a PHP 4Suportando PHP 5.2.6 e superior Depois.. PHP 5.3 e superior
  • 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. Teste de Unidade Sai o SimpleTest Entra o PHPUnit
  • 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. Teste de Unidade Mais poderoso Mais legal Mais? http://phpunit.de startTest() e endTest() serão descontinuados (deprecated)
  • 13. Teste de Unidade Asserções ligeiramente diferente Fornecido compatibilidade com código antigo Exemplo: $this->assertEqual Agora: $this->assertEquals
  • 14. Teste de Unidade Não existem mais grupos de testes Mas há um modo de fazer isso com PHP Unit
  • 15. Coleções Organizando
  • 16. ColeçõesBehaviors (Comportamentos)Components (Componentes)Helpers (Ajudantes)Shells (Linha de comando)
  • 17. Componentes
  • 18. Componentes
  • 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. SPLUsado onde foi possível
  • 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. Não-SPLNovamente, não reinvente a rodaRemovido código duplicado como codificaçãoJSONAgora pode contar com a funcionalidadefornecida com o PHP
  • 23. Exceções
  • 24. ExceçõesO uso de exceções para indicar erros no núcleoMais fácil de controlarMais “OO”Removido o cakeError
  • 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. RequestResponseRefatorando, centralizando.
  • 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. 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. Sessões
  • 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. Sessões SessionHandlerDatabase Cache PHP
  • 32. Sessões SessionHandlerDatabase Cache PHP
  • 33. Sessões SessionHandlerDatabase Cache PHP Seu Mecanismo Louco
  • 34. Sessões SessionHandlerDatabase Cache PHP Interface que manipula Seu Mecanismo Louco a Sessão do Cake
  • 35. Peraí!Isso parece familiar
  • 36. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  • 37. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools
  • 38. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Seu Super Mecanismo
  • 39. Javascript (v1.3) JavascriptHelperjQuery Prototype Mootools Seu Super Mecanismo JsBaseEngineHelper
  • 40. Carregamento Tardio
  • 41. Carregamento Tardio Objetos aninhados (alguns deles) Componentes Ajudantes (Helpers) Tarefas (Tasks) Fixtures Otimização barata Carrega apenas quando você precisa
  • 42. XMLFaze-lo faz sentido!
  • 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. ConsoleO shell se tornou mais populardo que planejado inicialmente
  • 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. VisõesHabilitando maior controle de plugins, e reordenação
  • 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. Visõesavaliar scriptsavaliar o conteúdobeforeLayout()beforeRender()render()
  • 49. VisõesbeforeLayout()beforeRender()avaliar scriptsavaliar o conteúdorender()
  • 50. EmailEnvie Emails de qualquer lugar! É o futuro!
  • 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. NovasFuncionalidades
  • 53. PDOJá era hora!!
  • 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. 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. Reescrevendo URLs Simplificando requisição de dados
  • 57. Reescrevendo URLs Anteriormente: /index.php?url=controller/action/data Agora: /index.php/controller/action/data O que isso significa para os desenvolvedores?
  • 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. Parametros Nomeados Agora permite que arrays sejam passados Permite até arrays aninhados
  • 60. Parametros Nomeados
  • 61. Autenticação
  • 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. Estrutura de Arquivos E carga de classes
  • 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. Nomes de Arquivos• my_things_controller.php => MyThingsController.php• form.php (um Helper) => FormHelper.php• session.php (um Componente) => SessionComponent.php
  • 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. DebugandoVocê estava esperando por isso…
  • 68. DebugandoNão há mais saidas HTML no console dedebuggingUsa blocos Ascii para ficar distinto
  • 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. Pegue o códigohttp://cakephp.orghttp://github.com/cakephp/cakephp Branch: 2.0
  • 71. Perguntas?Comentários? Abraços? Baseado nos slides de Graham Weldon, disponíveis em: http://www.slideshare.net/predominant