KISS - Keep it simple, stupid!

Migrando para o CakePHP 1.3

postado por Fabrício Ferracioli em 22/02/2010 13:39:06
Tags:

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_layout

    poderá 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_layout

    para

    $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

    $inline

    substituído por

    $options['inline']
  • Agora as chamadas a
    $session->flash()

    não são mais auto-exibidas, sendo necessário adicionar

    echo

    antes 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.

Tags:

Trackback

Faça o seu

Comentários (3)

  • 001

    Juan Basso

    em 23/02/2010 08:26:29

    Esta 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:44

    Cara,
    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:42

    Obrigado 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.

  • Faça seu comentário

Topo

3 Comentários

Creative Commons License
Sou Ágil: KISS em http://kiss.souagil.com.br está licenciado sobre
Creative Commons Attribution-Share Alike 2.5 Brazil License.

souÁgil