CakePHP 3.x での変更箇所、特徴

Pocket

今年2015年4月に安定バージョンがリリースされたCakePHP3.x系をしばらく使ってみたのでもろもろ気づいた点を書いてみる。

CakePHP 3.x系はMVCを踏襲しつつも2系とは全く別のフレームワークと言える程の変化をしている。1から2の変更点はシンタックスや最適化が主立ったところだったが、3では構成が大きく変わり設計哲学が変わっている。CakePHP2に慣れている人でも最初は結構戸惑うと思われる。

1.インストール

Composerでのインストールに対応。

2.ビルトインサーバー

Apacheとかなくてもビルトインサーバーで開発ができるのでとてもお手頃に始める事ができる。

3.フォルダ構成が大きく変わった

CakePHP3ではフォルダ構成が大きく変わった。今まではトップレベルのフォルダにApp, Cake, Vendorとあり、Appには自分のソース、Cakeにフレームワーク本体、Vendorに外部ベンダーのライブラリという構成だったが、今回からはCakePHPのソースがvendorの中に納められAppの代わりにsrcというフォルダが容易された。config, tmp, logなどのフォルダはAppの中ではなく、トップレベルのフォルダの直下になった。

4.namespaceの利用

PHPのnamespaceを利用する様になったのでクラス名の重複等により安全になり明確な設計がされる様になった反面、クラス名指定時にnamespaceを意識しないといけない。

5.Modelの思想が大きく変更になった

Modelという概念は残っているが、Modelというクラスを直接扱う事は無くなりModelはTableとEntityに分離された。また今まで配列で扱っていたテーブルデータはEntityクラスのインスタンスとしてオブジェクトで利用可能になり、今まで歯がゆかったテーブルデータの扱いをよりフレキシブルに扱う事出来る様になった。

6.AppModelの廃止

AppModelは廃止されたので探さないように。AppModelではなくbehaviorでうまくやろう。

7.afterFind関数の廃止

今までモデルデータを配列で扱っていたために重宝したafterFind関数もオブジェクトでデータを扱える様になった今となっては不要の長物となったという事で廃止された。Entityに関数を書いてうまくやればafterFindの代わりにうまくやれるだろう。

などなどもっといろいろあるけど大きく変わったので書ききれない。今までCakePHP2に慣れている人は最初の苦しみが少しあるけれども、一度使い始めるとそのメリットを大きく享受できるようになり後戻りできなくなる。是非思い切って3系を使ってみよう。

記事が役に立ったらぜひシェアをお願いします。

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *