Cakephp 2.0 - O que mudou
Upcoming SlideShare
Loading in...5
×
 

Cakephp 2.0 - O que mudou

on

  • 1,079 views

 

Statistics

Views

Total Views
1,079
Views on SlideShare
1,079
Embed Views
0

Actions

Likes
2
Downloads
28
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Cakephp 2.0 - O que mudou Cakephp 2.0 - O que mudou Presentation Transcript

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