2014の8日目の記事です。先週はものすごく寒かったですね。今回は技術的な話はほとんどなくて、自分語りになります。1.2がリリースされたぐらいからずっと、メインに使用するフレームワークはCakePHPだったのですが、この1年、SilexとかLaravelとか使ってました新規開発案件ではCakePHPを使うことがありませんでした。保守をしているものはあるので、まったくCakePHPに触れていなかったということはないのですが、CakePHP以外のフレームワークとライブラリを使用することが多かったです。理由は色々あるんですが、主に次のようなものです。規模の大きくないちょっとした案件だったcomposerが使えるようになったnamespaceが使いたかったCakePHPの配列地獄に心が折れたLaravelを使うとモテるらしいので使ってみたかった半分以上適当ですが。:p一番はそろそろLaravelを触っておかないと、取り残される気がしたからでしょうか。宿敵Symfony一族(?1)の軍門に降りました。スゲー!!えぇ、カルチャーショックでしたね。Eloquent(CakePHPのModelに相当)が良くできています。目的の操作をストレスなく実装できます。Mutator、簡単にJSONに変換できる点などが気に入りました。リクエストのルーティングは、ちょっと面倒くさいのですが柔軟に設定できるのがいいですね。標準でキュー&ジョブワーカーの仕組みがあり、非同期処理が簡単に実装できるのも魅力です。標準のValidation機能はちょっと貧弱で使いづらいかったのですが、拡張機能を入れることにより解決しました。今一番人気のフレームワークワークだけあって、だいたい欲しいと思う機能は既に誰かが拡張を作っています。Web職人のためのフレームワークを謳っているだけあって非常に使いやすかったです。あと、某カートシステムのDB周りが気にくわなかったので、LaravelのEloquent部分を使って書き直してアクセスするようにしたりしました。ORMだけ導入することもできて便利ですね。それでも!次のプロジェクトはCakePHPで開発しようと考えています。正式リリースされるであろうバージョン3ベースですね。Laravelは自由すぎたいろんなことが自由にできるので、ちょっと気を抜くとコードがとっちらかり気味になってしまいました。慣れの問題なんでしょうが、長年Bakerとしてやってきた身からするとやっぱりある程度決まりがあって欲しいんです。3からは改善されます。Entitiyという組み合わせで、データを取得して処理することができるようになります。オブジェクト万歳!サポート期間が長い・大きなアップデートが頻繁ではないこれが大きいですね。1.3系は4年前にリリースされましたが未だにバグやセキュリティの修正がされています。2今回、3になることでだいぶ変わりますが、それでも今後数年は使えることを考えると新規プロジェクトで導入する価値はあります。業務で作ったシステムは数年動くのが当たり前なので、サポート期間が長いことは嬉しいことなんです。過去の資産これまでCakePHPで開発してきて、いろんなノウハウとプラグインが溜まっているので、やっぱりこれらを捨てるのはもったいないと。プラグインの移行(特にデータソース系)で死亡しそうですが...そんなこんなで、nojimageはこれからもCakePHPと関わっていきます。2014の8日目の記事でした。LaravelはSymfonyのコンポーネントを使っていますが、全然別物なので適切な表現とはいえませんね。↩3.0が正式リリースされたらサポート終了となるそうです。