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

コメントはありません

コメントする

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Monthly Archives