CakePHP1.2から1.3への変更作業

公開日: : 最終更新日:2014/04/20 CakePHP


CakePHP1.2から1.3への変更作業でおこなったことまとめ。
思ったよりも面倒なので、誰かの役に立てば貰えばうれしい限り。

[公式移行ガイド]
404 Not Found
基本的には、上記のサイトを見れば変更すべき箇所が分かります。

ちなみに私がその中で、対応したのは(主に)以下のこと。

  • バリデーションルールの変更
  • セッションコンポーネントの明示的読み込み
  • pageTitleの変更
  • find周りの変更
  • $form->selectの書き方の修正

以下に順に説明します。

バリデーションルールの変更

1.3では、バリデーションルールが変わって以下が利用できなくなりました。

  • VALID_NOT_EMPTY
  • VALID_EMAIL
  • VALID_NUMBER
  • VALID_YEAR

app/config/bootstrap.phpに定義すれば、そのまま使えるようですが、将来的なことを考えれば新しいバリデーションルールにするのが良いです。

新しいバリデーションルールは以下。

上記を参考にしながら、以下のように変更。

  • VALID_EMAIL -> email
  • VALID_NOT_EMPTY -> notEmpty

セッションコンポーネントの明示的読み込み

ここが何気に盲点だったんだけども、セッションコンポーネントは1.2では明示的に読み込む必要が無かったのだけど、今回(1.3)は書かないと駄目な模様。

  • var $components = array(‘Session’);

上記を追加。

pageTitleの変更

View::$pageTitleは削除されました。代わりに$this->set(‘title_for_layout’, $var);を使用してください。
[公式より引用]

今までは、Viewで以下のように書いてたのだけど、

  • $this->pageTitle = IndexPageTitle

    • ※IndexPageTitleは、設定ファイルで宣言してます。

1.3からは以下のように変更。

  • $this->set(‘title_for_layout’, IndexPageTitle)

View側でページタイトルを決めるんだとしたら、$this->se()より$this->pageTitleのほうが分かりやすかった。

find周りの変更

ほんと、色々と削除されてしまっていますが・・。

Model::findAll、findCount,、findNeighbours は削除されました。
[公式より引用]

モデルでよく使うfindですが、以下のような作りになっています。

  • find($type, $params)

以前は、以下のように書いて動作してましたが、1.3では動作しません。

  • findAll($conditions, $fields, $order, $limit, $page, $recursive)

これを単純に以下のように書き換えても動作しません。

  • find(‘all’, $conditions, $fields, $order, $limit, $page, $recursive)

なので、1.3では以下のように修正。

$params = array(
‘conditions’ => $conditions,
‘recursive’ => $recursive,
‘fields’ => $fields,
‘order’ => $order,
‘limit’ => $limit,
‘page’ => $page,
)
find(‘all’, $params);

$this->selectの書き方の修正

これは、公式に載っていなかったと思うのだけど1.3にしたら動作しなくなったので自ら修正した箇所。

今まで、以下のように記述。

  • $form->select(“Task.priority”, $priority, null, array(), array(), false, false);

    • $priority = array(0 => ‘低’, 1 => ‘中’, 2 => ‘高’);

こうすると、デフォルトとして$priorityの0の値が表示されていたのだけど1.3では表示されずに、空が表示されるように。

なので以下のように変更。

  • $form->select(“Task.priority”, $priority, $selected, array(“empty” => false))

$selectedに表示したい値のkeyを入れておけばOK。

参考ページ一覧

今回お世話になったページ。

広告

関連記事

no image

CAPTCHAの導入方法 -KCAPTCHAの導入-

CakePHP(1.2、1.3)にKCAPTCHAを導入してみたのでメモ。 * CAPTCHA

記事を読む

input

CakePHP2系でTwigを利用 -書き方のメモ-

CakePHP2系でTwigをどのように記述するかのメモ。 数パターンしか載せてないですが、だいた

記事を読む

no image

order byでハマったこと -order by、group byの処理順序-

CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 * 

記事を読む

no image

Twitterでサービスにログイン -PHP(CakePHP1.3)で実践編-

以前、ソーシャルログインについて書きました。 ただ、Twitter連携にまだ触れてない人にはちょ

記事を読む

no image

CakePHP1.3でテストコード(3) -ENUM型が使えない-

cakePHP1.3でのSimpleTestを使ったテストケースの第3回目。 今回は、テーブル構成で

記事を読む

no image

CakePHP1.3でテストコード(1) -モデルのテスト-

CakePHP1.3ではSimpleTestを用いてテストコードを書きます。 ※CakePHP2系で

記事を読む

no image

CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-

cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ

記事を読む

構成

定期的にデータ取得のためにCakePHP1.3でシェル機能を利用

定期的にデータを取得する行為をするために、はじめてシェル機能を使ってみたのでメモ。 * ス

記事を読む

dl-1

CakePHP2系にTwigを導入

CakePHP2系でも慣れているSmartyを使おうと思ったものの、良いプラグインが見つからず断念。

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑