CakePHP 1.2 から 1.3 にバージョンアップする手順のまとめ

具体的な作業内容を紹介されているブログが見当たらなかったので、少しでも誰かの役に立つように私の方でメモを残しておきます。ちなみに、メモの内容は私の環境の場合におけるものですので、足りない部分は個別に対応してください。

また、細かい内容は今回こちらの移行ガイドを参考にしました。

cake ディレクトリを差し替える

以下のページを参考に差し替えさせて頂きました。そのまま cake ディレクトリを最新のものに書き換えれば良いです。

index.php の差し替えと書き換え

index.php も最新のものと差し替え、パスの変更等を行ないましょう。

View::renderElement を View::element() に書き換える

View::renderElementは削除されました。 代わりにView::element()を使用してください。

とのことなので、例えば以下のように書いていたら。

1
echo $this->renderElement('meta', array('cache' => array('key' => 'meta', 'time' => '+1 hour')));

以下のように変更するだけですね。

1
echo $this->element('meta', array('cache' => array('key' => 'meta', 'time' => '+1 hour')));

find 関数を修正する

CakePHP 1.3 から従来までの findAll() などのその名もズバリな関数名は削除され、すべて find() の第一引数で指定する形になりました。

そのため以下のような記述をしているところがあれば。

1
$this->findAll('1=1')

以下のように find() に書き換えて、第一引数で指定します。

1
$this->find('all', '1=1')

ページタイトルの設定を修正する

しばらくして気づきましたがタイトルの設定方法も変更になったようです。
pc.casey.jp » CakePHPでページタイトルを設定する(1.3系)

1.2系では以下のように記載していたところを。

1
$this->pageTitle = ‘ページタイトル’;

以下のように設定してやります。

1
$this->set(‘title_for_layout’, ‘ページタイトル’);

$cakeDebug を $this->element(‘sql_dump’) 置き換える

よく見たら $cakeDebug で以下のようなエラーが発生していました。

Notice (8): Undefined variable: cakeDebug [APP/views/layouts/default.ctp, line 100]

どうやら1.3系からは $cakeDebug が削除されてしまったようで、代替方法も特に載ってるサイトもなくて困っていましたが、以下のページで紹介されていました。
Bye-bye $cakeDebug… | nuts and bolts of cakephp

以下のように書いてあるところを。

1
<?php echo $cakeDebug; ?>

以下のように書き換えましょう。

1
<?php echo $this->element('sql_dump'); ?>

私の場合は以上で終わってしまいました。それだけ複雑なことをしていなかったり、かなり細かい処理は直接 SQL 叩いたりしているので、なおさら移行作業が少なくてすみました。

コメント

  1. やすボーイさんのコメント

    ツイッターから来ました。
    自分も1.3でやったら、色々変更点があって大変困りました。参考記事です。
    http://tougen.seesaa.net/article/158738496.html#more