Entries


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

-件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/1372-5ec4a81d

CakePHPの練習:1.3から2.0に移行してみる


CakePHPの1.3から2へ移行テスト中です。
移行しているサイトは
http://sparechange.chocospot.com/
こちらです。

まだまだローカルなのですが、1.3のソースをコピペしただけで大体動くみたいです。
直したあたりを軽くメモしてみます。

viewのヘルパーが動かなくなった点について
Notice (8): Undefined variable: html [APP/View/Posts/index.ctp, line 16]

Fatal error: Call to a member function link() on a non-object in /Library/WebServer/Documents/dev.chocospot.com/cakephp/app_sparechange/View/Posts/index.ctp on line 16

CakePHP2.0にしてみたらこの手のエラーがいっぱい出ました。

1.3で動いていたソース

これだと動かなくなりました。

2.0で直した方

こちらにすると動きました。FormHelperとかも$form->input();と書いていたので動かなくなりましたが、$this->Form->input();のように$thisをつけると動くようになるみたいです。

非推奨になったプロパティについて
1.3ソースをコピペしたらエラーがでました。
Notice (8): Indirect modification of overloaded property UsersController::$data has no effect [APP/Controller/UsersController.php, line 127]

なんですかこれわ・・・
1.3で動いていたソース

エラーでぐぐってみると

CakePHP 2: Indirect modification of overloaded property ... has no effect
http://cakephp.1045679.n5.nabble.com/CakePHP-2-Indirect-modification-of-overloaded-property-has-no-effect-td4656246.html

Please read the migration guide, $this->data is now just a ready-only to the new $this->request->data


$this->dataじゃなくて$this->request->dataにしろと書いてあります。

2.0で直した方

requestをつけるとエラーが消えました。

移行ガイドに書いてありました。

2.0 移行ガイド
http://book.cakephp.org/2.0/ja/appendices/2-0-migration-guide.html
非推奨になったプロパティ¶
以下のヘルパのプロパティは非推奨となります。 将来のリリースで削除される予定のこれらのプロパティに直接アクセスする代わりに、Requestオブジェクトのプロパティまたはヘルパーのメソッドを使ってください。

Helper::$webroot は非推奨になりました。代わりにRequestオブジェクトのwebrootプロパティを使用してください。
Helper::$base は非推奨になりました。代わりにRequestオブジェクトのbaseプロパティを使用してください。
Helper::$here は非推奨になりました。代わりにRequestオブジェクトのhereプロパティを使用してください。
Helper::$data は非推奨になりました。代わりにRequestオブジェクトのdataプロパティを使用してください。
Helper::$params は非推奨になりました。代わりに $this->request を使用してください。


$this->dataは書籍にも使い方が書いてあるのが多かったので、ここは変更になる人が多く居るんじゃないかななんて。

あと、$this->requestってなんだよと思いました。こいつはhttp://book.cakephp.org/2.0/en/controllers/request-response.htmlここにあるCakeRequestのところをみるといいんじゃないでしょうか。$this->dataを$this->request->dataにするだけでそのまま動きそうな気がしました。
追記:GETのパラメータを受け取るときに1.3では$this->params['url']['hoge']としていたのですけど、これもrequestで取れるようにったらしく2.0では、$this->request->query['hoge']なんかで取れるとか。
つまりrequest使いまくればだいたい動くに違いないのかもしれないです。

でわでわ。


0件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

0件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/1372-5ec4a81d

Appendix

プロフィール

川崎修

  • Author:川崎修
  • インターネット大好き!
    調布周辺で自宅警備してます



    メール:pugiemonn@gmail.com
    skype:pugiemonn
    twilog:Twilog
    mixi:mixi
    facebook:facebook
My Profile by iddy
FC2ブログ

カレンダー

04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

最近の記事

Twitter

コミュニティ

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

Adsense

月別アーカイブ

はてぶ数

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。