WEB/システム/IT技術ブログ

CakePHP1系からCakePHP2系への移行作業

CakePHP2系がリリースされてしばらく経つので、そろそろ安定してきたかなと思い、実際にCakePHP1.3.6からCakePHP2.1.3へ移行してみました。
以下は、アップグレードに伴い、実際に作業した内容をまとめたものです。

ちなみに、CakePHP2.1.3はインストール済みのものとします。

ファイル名のルールがキャメルケースへ

これまでスネークケースであったファイル名のルールが以下のようにキャメルケースになります。また複数形の「s」も排除されています。

/controllers/pages_controller.php ⇒ /Controller/PageController.php
/views/pages/display.ctp ⇒ /View/Pages/display.ctp

コンポーネントの継承が変わる

コンポーネントクラスはこれまで「Object」を継承していましたが、以下のように「Component」を継承するようになりました。

class TestComponent extends Component {

コンポーネントの引数が2つから1つに

これまでは、コンポーネントを読み込むときに、第2引数で配列で値を渡すことができました。

class TestComponent extends Component {
    function initialize(ComponentCollection $collection, $settings = array()) {
    }
}

しかし、CakePHP2からは第1引数のみとなります。

    function initialize(ComponentCollection $collection) {
    }

プラグインのファイル構成が異なる

例えば、コンポーネントプラグインを追加する場合、

/plugins/my_plugin/controllers/components/test.php

このようにファイルを設置していましたが、以下のようになります。

/plugins/MyPlugin/Controller/Component/TestComponent.php

プラグインは事前にロードしなければならない

以前はいきなりコントローラ内で、例えばプラグインコンポーネントを読み込んでました。

$components = array(‘MyPlugin.Test’);

しかし、CakePHP2では事前にプラグインを読み込む必要があります。例えば「bootstrap.php」で以下のようにロードします。

CakePlugin::load(' MyPlugin ');

廃止になったヘルパー

以下のヘルパーは廃止となり使えなくなりました。

Ajax Helper、JavaScript Helper、XML Helper

廃止になった関数

以下の関数は廃止となり使えなくなりました。

ife()、cakeError()
B!

Comment

コメントはありません

コメントする

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives