Migrando para o CakePHP 1.3
A maioria já deve saber que o CakePHP está com a versão 1.3 do framework em estado beta. Me recordo que a versão 1.2 do framework já era bem agradável quando estava em fase beta, e portanto decidi testar o que o CakePHP 1.3 tinha de novo. Fiz o download e fui direto para a página que contém a descrição das principais mudanças da versão 1.2 para a 1.3. Quando vi que ela tinha um tamanho um pouco grande decidi testar logo alguma aplicação que eu tinha funcionando na versão 1.2.
Para minha surpresa ela não exibiu nem a página inicial, e ao invés disso várias mensagens de erro foram mostradas. Então vi que era realmente necessário ler a extensa página. Durante a leitura percebi que diversas mudanças importantes ocorreram, e logo vi o porque da minha aplicação sequer funcionar. Como a leitura é um pouco extensa, decidi resumir as principais mudanças aqui. As novidades vão ficar para depois, porque também são várias.
Principais mudanças do CakePHP 1.3
- Adicionadas configurações específicas do config/core.php para quem utiliza o PHP 5.3
- O arquivo webroot/index.php foi alterado, e deve ser substituído em sua aplicação
- Recomenda-se que todos os métodos e classes deprecados não sejam mais utilizados
- Admin routes foram removidas por uma configuração mais geral, chamada routes prefix. O route prefix admin pode ser definido com a linha
Configure::write('Routing.prefixes', array('admin'));
- O método de remoção no modelo agora é único,
Model::delete()
- O Model teve os métodos métodos findAll(), findCount() e findNeighbours() removidos
- Os diretórios css, js e img foram removidos dos diretórios app/vendors e plugin/vendors e substituídos com os diretórios plugin e theme no webroot
- Somente a variável
$title_for_layoutpoderá ser definida para o título da página, tanto no Controller quanto na View
- Deve-se selecionar o ponto da aplicação desejado para dump de sql quando o debug está definido para 2, utilizando a linha de código
echo $this->element('sql_dump');
em qualquer ponto da aplicação
- SessionHelper e SessionComponent não são mais carregados por padrão. Agora devem ser declarados como qualquer outro helper ou component. Para manter o comportamento antigo, adicione a declaração de helpers e components em seu AppController
- A função
SessionComponent::setFlash()
teve seu segundo parâmetro alterado para usar um element e não um layout. Para alterar sua aplicação primeiro mova seus layouts para a pasta de elements e renomeie a variável
$content_for_layoutpara
$message - Não existe mais o nível 3 de debug
- PaginatorHelper agora produz a saída dos métodos
prev(); next(); first(); last();
englobada por
<span>
e não
<div>
para tornar a estilização mais fácil
- Os métodos
dateTime(); year(); month(); day(); minute(); meridian(); select();
do FormHelper não possuem mais o parâmetro
$showEmpty, e agora utilizam
$attributes['empty']
-
FormHelper::submit()
agora pode criar outros inputs além de type=submit. Para isso utilize a option type
-
FormHelper::button()
agora cria elementos button ao invés de inputs reset. Para criar inputs de reset, utilize
FormHelper::submit()
com o parâmetro option definindo ‘type’ => ‘reset’
- O método
FormHelper::create()
não cria mais elementos fieldset escondidos, agora substituídos por divs escondidas, o que ajuda na validação de HTML 4
- No HtmlHelper os métodos
link(); para(); div(); tag()
não pussuem mais o parâmetro
$escape, que foi substituído por
$options['escape']
. Similarmente os métodos
meta(); css()
tiveram o parâmetro
$inlinesubstituído por
$options['inline']
- Agora as chamadas a
$session->flash()
não são mais auto-exibidas, sendo necessário adicionar
echoantes da chamada a função, como em qualquer método de helper
- JavascriptHelper e AjaxHelper estão deprecados, e agora deve-se utilizar o JsHelper em conjunto com o HtmlHelper.
$javascript->link()
agora é
$javascript->codeBlock()
é
$html->scriptBlock()
Já deu para perceber que vai dar trabalho mudar algumas coisas. E essas são apenas as alterações que considerei mais importantes, na página de migração do 1.2 para o 1.3 está a lista completa. Verifique nessa se alguma mudança afeta as suas aplicações.
Pelas alterações deu para perceber que o framework está mais preocupado com a padronização do seu comportamento, de código, utilização de Web Standards e desempenho, questões que são sempre importantes.
Bom, é isso, espero ter ajudado. Na próxima vamos dar uma olhada nas novidades do Cake 1.3.
Comentários (3)
-
001
Juan Basso
em 23/02/2010 08:26:29Esta nova versão está ficando muito boa. Pude contribuir com alguns patchs e acompanhar o desenvolvimento. Foram feitas várias alterações para melhorar a performance que isto não se encontra em documentações (exceto changelog). Ou seja, o CakePHP 1.3 está mais rápido que o CakePHP 1.2!
Como você falou no começo, mesmo estando na versão beta, já é uma grande versão e pode-se começar a usar na prática. Eles ainda não passaram para release porque desta maneira podem incluir novos enhancements, caso contrário, somente para 1.4 ou 2.0.
-
002
Charles Schaefer
em 25/02/2010 12:26:44Cara,
Muito bom o post. Já indiquei para minha equipe para irem preparando as migrações quando soltarem o release.
Em tempo, tenho gostado bastante dos seus posts. Muita coisa boa! Parabéns!E como nem tudo são flores, segue apenas uma correção: “Verifique neça se alguma mudança [...]”
s/neça/nessa/ ;) -
003
Fabrício Ferracioli
em 25/02/2010 13:04:42Obrigado pela correção, e pelos elogios. Espero que os posts continuem úteis para todo mundo!
Como o Juan disse no outro comentário, essa versão está ficando muito boa e vale a pena migrar.




