CakePHP 1.2 から 1.3 へ移行の覚書

2011/05/28 土曜日 0:33 投稿者 zon

とあるサイトをサーバ移転するついでに、CakePHP を 1.2 から 1.3 に移行した。正確には、1.2.6 から 1.3.9 にアップグレードしている。

フレームワークで作るほどでもない簡易なサイトだったのでほとんど問題なく移行できたが、公式のマニュアル通りの修正箇所は何点かあったのでその覚書。

インストール

コンソールで移行するプロジェクトを新たにインストール。
データベースの設定と接続の確認。

元ファイルの差し替え

下記のファイルの差分を差し替え。

/app_controller.php
/app_helper.php
/app_model.php

/config 配下の差分を差し替え
inflections.php はなくなっている。おそらく bootstrap.php にまとめればよいと思う。

不必要なファイルの読み込みをしていた inflections.php は削除され、関連した機能は柔軟性を増強するため、メソッドに書き直されています。今やカスタム inflections を読み込むためには、 Inflector::rules() を使います。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

下記の配下を差し替え。
/controllers
/models
/views
/webroot (※主に /css /img /js など、変更したもの)

あとは、1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション を参考に修正した箇所を挙げてく。

Undefined variable: cakeDebug

$cakeDebug変数はView::renderLayoutから削除されました。エラーを避けるためこの変数の参照を削除してください。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

ということなので、変数を削除する。

Use of undefined constant VALID_NOT_EMPTY

以下の定数はCakePHPから削除されました。削除された定数にアプリケーションが依存しているなら、app/config/bootstrap.phpにこれらの定数を定義してください。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

以下の定数の中に VALID_NOT_EMPTY が含まれていたので 「VALID_NOT_EMPTY」を 「notEmpty」に置換する

notEmpty :: 組み込みのバリデーションルール(Validation Rules) :: データのバリデーション(Data Validation) :: CakePHPによる作業の定石 :: マニュアル :: 1.3コレクション

ちなみに 「VALID_EMAIL」 は 「mail」 に変更になったらしい。

ウェブサイト開発中の問題やCGIを作る際のまとめ: CakePHP:Use of undefined constant VALID_NOT_EMPTY – assumed ‘VALID_NOT_EMPTY’のエラー表示について

コンポーネント

SessionコンポーネントとSessionヘルパーは自動的に読み込まれなくなりました。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

Session コンポーネントを使っているコントローラに、コンポーネントとヘルパーを読み込ませる。

ビュー

ビュー関連は主に下記の内容に引っかかった。

  • View::renderElementは削除されました。 代わりにView::element()を使用してください。
  • View::set(‘title’, $var)をしてもレイアウト中で、 $title_for_layoutにセットされなくなりました。$title_for_layoutはデフォルトのままです。もしカスタマイズしたいなら、$this->set(‘title_for_layout’, $var)を使用してください。
  • View::$pageTitleは削除されました。代わりに$this->set(‘title_for_layout’, $var);を使用してください。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

モデル

モデル関連は主に下記の内容に引っかかった。

  • Model::del()とModel::remove()は非推奨となっており、Model::delete()が正規の削除メソッドです。
  • Model::findAll、findCount,、findNeighbours は削除されました。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

ヘルパー

TextHelper::trim()は非推奨となりました。代わりに truncate()を使用してください。

1.2から1.3への移行ガイド :: 付録 :: マニュアル :: 1.3コレクション

今回は関係なかったけど、過去にどこかで使ったことがあるような気がする。もしくは、この関数を知らずに似たような機能を自分で作ったのだったかもしれない。

トラックバック一覧

この記事にはトラックバックがついていません。

コメント一覧

この記事にはコメントがついていません。

RSS feed for comments on this post.

コメント投稿

Sorry, the comment form is closed at this time.