12. 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
13. Teste de Unidade
Mais poderoso
Mais legal
Mais? http://phpunit.de
startTest() e endTest() serão descontinuados
(deprecated)
14. Teste de Unidade
Asserções ligeiramente diferente
Fornecido compatibilidade com código antigo
Exemplo:
$this->assertEqual
Agora:
$this->assertEquals
15. Teste de Unidade
Não existem mais grupos de testes
Mas há um modo de fazer isso com PHP Unit
20. Componentes
A classe base Component agora é obrigatória
para todos componentes
Deve-se atualizar os componentes e seus
construtores, já que os 2 mudaram
Ficou mais intuitivo
Menor necessidade de procurar por
documentação
22. SPL
Standard PHP Library – Biblioteca padrão PHP
Fornece interações com Arquivos e Pastas
Possui Classes legais para muitas coisas
Não é necessário reimplementar no núcleo
O CakePHP 1.x estava a frente do seu tempo
O PHP o alcançou
Hora de cortar a gordura
23. Não-SPL
Novamente, não reinvente a roda
Removido código duplicado como codificação
JSON
Agora pode contar com a funcionalidade
fornecida com o PHP
25. Exceções
O uso de exceções para indicar erros no núcleo
Mais fácil de controlar
Mais “OO”
Removido o cakeError
26. Exceções
Crie manipuladores personalizados para cada
exceção
Controle o que acontece após a exceção
Exemplo:
MediaView
Se arquivo não encontrado:
Trate de maneira inteligente
28. 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
29. 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
31. Sessões
Removido código duplicado (DRY)
Não deveria ser sempre incluida (1.3 fix)
Manipulação de dados pelo Modelo
Acessível de qualquer lugar
Permite personalização de maneira simples
Separado o Caching, Database, etc.
44. XML
Até onde fazer XML faz sentido..
.. foi feito
XML no 1.x era muito particular do CakePHP
Não era fácil integrar
Não tratava corretamente os namespaces
Não permitia nós ordenados
Construido sobre o SimpleXML
Máis Rápido
Genérico
46. Console
Ajuda na geração facilitada
Melhor para usuários de plugins, assim como
seus desenvolvedores
Texto do console colorido (ui!)
Fácil identificação de ocorrências e erros
Suporte a saída “verbosa”
Os Shells estão sendo usados:
reestruturado: app/console/
Movido de: app/vendors/
Permite melhor configuração do caminho do
console
48. Visões
Os Callbacks mudaram
Conforme o framework amadureceu:
Pessoas fizeram novos plugins
Os Plugins precisavam de controle
Queria-se alterar a saída
Ordem das operações foi mudada
52. Email
Era restrito ao uso do Controlador com um
Componente
... ou um hack terrível para habilita-lo em
outros lugares
Agora é uma biblioteca do núcleo
Use em qualquer lugar
Há Wrappers para prover usos nos modelos e
controladores
Simples, e efetivo
56. PDO
Todos bancos de dados trabalham da mesma forma
Troca de SGBD de maneira simples
Fornece garantias para troca de contexto:
Ambiente de Desenvolvimento
Ambiente de Produção
57. Reescrevendo
URLs
Simplificando requisição de
dados
58. Reescrevendo URLs
Anteriormente:
/index.php?url=controller/action/data
Agora:
/index.php/controller/action/data
O que isso significa para os desenvolvedores?
59. 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
60. Parametros Nomeados
Agora permite que arrays sejam passados
Permite até arrays aninhados
63. Autenticação
Completamente refatorada
Não faz mais hash automático das senhas
Authentication handlers
Objetos Personalizados de autenticação
Logar um usuário manualmente
Basic Authentication
Digest Authentication
Stateless Authentication