CakePHP2->3 ハイパーマイグレーションガイドの目次

とある受託案件があった。Railsで提案すると、「PHPで」とのことだった。

殺された知的好奇心

実はLaravelに興味があった。PHPフレームワークGoogle trendsで見ると、世界ではCodeIgniterをとっくに交わしてダントツのNo.1。
ガラパゴスCakePHP王国日本でもNo.2に躍り出てCakeを激しく追い上げている。チュートリアルをざっと見ても、「イケてるな」と感じていた。


CakePHP3にも興味がないではなかった。DBからEntityを取得すると、配列が返ってくるというCakeの象徴のような仕様。Modelまわりが直感的じゃなくならざるを得ないあの仕様が、ついに変わったという。

しかし僕は100万弱の案件を10日で終わらせるため、過去のコード資産を活用でき、手足のように使えるCakePHP2系を結局選んだ。
経営者として生きるため、技術的好奇心などとっくの昔に殺したんだ。

想定外

だがこのクライアント、予想外だった。
「できるだけ新しい技術使ってほしいなぁ、CakePHPって3があるの?」

打ち合わせから3日後、既に30%を書き上げていて不確定な詰まりを恐れた僕はそれでも渋った。
「既に書いた部分書き換えるコスト負担していただけるなら…ただぶっちゃけ発注側からしたらメリットないですよ?正直コストも読めなくて○○万円くらいだとは思うんですけど…」
「それくらいならいいですよ」

やれやれ、僕はPHPを7した。

概要

CakePHP2系から3系に移行する際、書き換えが必要な部分、詰まった部分をまとめます。
CakePHP3は、思った以上にCakeの気持ち悪さがなくなっててわりと良かったので、みなさんガンガン移行しましょう!

目次

  • YosemiteでCakePHP3環境構築
  • CakePHP2->3 設定項目を移行するお
  • CakePHP2->3 Authプラグインまわりを移行する
  • CakePHP2->3 Controllerを移行する
  • CakePHP2->3 Modelを移行する
  • CakePHP2->3 Viewを移行する