代表的なphpフレームワークについての自分なりの感想とかメモ

個人的にざっとチュートリアルを読んで、 自分で使えそう、割りと有名ドコロって思ったのを今回は紹介します。(そもそもアホみたいに乱立気味なので全部は紹介できん。無理。) あくまでも、メモなので、よくありがちはgithubでのStar数は掲載してないです。

ちなみにSlimとかSliexはメモが必要なほどそもそも機能がないので、説明しないことにします。

Cakephp3

https://github.com/cakephp/cakephp

前バージョンで散々ディスられていたフレームワークの最新版。 もともとCake2ユーザーだったので色々嬉しい機能は付いている。

  • Migrationが標準機能。
  • SQliteがまともに使えるように。(前から使えてたけど、Migrationも使えるので、ようやく実践レベルに。)
  • composerが必須に。
  • 配列地獄からの脱却(ORMがオブジェクトで帰ってくる)

良くないところとしては、まだまだ2系の記事の方が出回っていたり、 Model周りがざっくり変わってて後方互換性がほぼ無いこと。 日本でも、phpフレームワークのメインストリームは後述するLaravelに取って代わられている感は否めず、 3系で後方互換性がないと知るや、あっさり他の言語やRailsに移行したケースがあとを絶たないので、1系や2系のような日本での人気は出ないと思う。

3のリリースから半年近く立つと思うんだけど、 未だに枯れてるとかいう理由で2系から出たがらない人が大多数を占めているので、 しっかりとした3の知見が増えてくるまではあと1年〜1年半位掛かりそうな気がしている。

Fuelphp

https://github.com/fuel/fuel

個人的に好きなフレームワークの一つ。

小さいけど、結構なんでもできちゃう感じのフレームワーク。

なんだけど、2,0で結構構造変わるっぽいので、長期的な面から考えると今からは採用しづらい。 少し前まで、妙に日本での人気が高かった印象。

CodeIgniter3

https://github.com/bcit-ci/CodeIgniter

これは特に試してない。ドキュメントとかざっと見てみた感想。 LICENSE問題が解決して、安堵しているエンジニアも多々いるのではないでしょうか。 最近出ているphpフレームワークの中でも珍しく、Composerが必須ではないフレームワーク。 phpunitを使うにはプラグインのようなものが必須になるので注意が必要。

半年使ってみた人の感想が載っています。

http://rdlabo.jp/codeigniter-285.php

Yii 2

https://github.com/yiisoft/yii2

最新版の特徴についてはココに詳しく載っている。

http://tanakahisateru.hatenablog.jp/entry/2014/11/20/172742

上記の記事を見てみた感想だけだと、結構いい感じ。

特に「Railsと比べて何が良いか」は、 例えYiiを使わなくても頭を悩ますphperはぜひとも読んで欲しい項目だと思っている。

日本語での知見はあんまりない。今後に期待。

laravel5

https://github.com/laravel/laravel

自分で設計をしっかり頑張って考えれる人が使って初めて 真価を発揮するフレームワークなのかなという印象。 設計を考えるのが面倒って思っている人や、とにかく規約という名のレールに乗りたい人には向いてない。

Laravelについてはいい記事はたくさんあるので、特に紹介しないで、気になった記事だけをピックアップしておきます。

http://qiita.com/katsuren/items/2c8d18814ad76c54f80f

http://qiita.com/mojibakeo/items/6dc9e150def945be7b15

とはいえ、なんだかんだでひと通りの仕組みなんかは揃ってる気がする。 今一番勢いのあるフレームワーク。(JSでいうReact枠) 日本語での知見も若干増えているし、ちょっと前に書籍も出た。

なんかベンチマークが遅いのが良くないとか言われているが、どうなんだろうか。 ベンチマーク速度が気になる人はLumenでも使えば良い。

5.1が最近リリースされ、今後2年間バグ修正、3年間はセキュリティの面倒は見てくれるということなので、サポート体制としては暫く安泰な感じ 。

僕は自分で設計を考えるのがしんどい残念なエンジニアなので、これを使っても、 結局いつものMVCのノリで設計してしまい、あまりいい結果にはならない気がする。

Phalcon

https://github.com/phalcon/cphalcon

ベンチマークテストが今一番速いフレームワークである。 下記記事は1系の記事だけど、後方互換性もあるっぽいので、見とくといいでしょう。

http://qiita.com/sukobuto/items/ff840d34395fdb6e4e68

機能がほとんどPHPExtensionで実装されているので速いわけだけど、 それ起因でエラーが発生した時とかどうしようかなぁと、やっぱり心配にはなる。 Phalconもオートローダーを提供しているのかなんなのか、Composerと相性が良くないみたいで、これを解決する知見があれば試してもいいかなという感じ。 ちょっと前に話題になった気がしないでもないけど、現状そこまで伸びてない感じ。

Symfony

https://github.com/symfony/symfony

大規模開発での開発に向いてるよというのをよく聞く印象。

書いたことがないけど、見た感じコードがJavaっぽい感じがする。

主なメリット・デメリットは以下のブログを参照してください。

http://shiro-goma.hatenablog.com/entry/2014/12/19/114144

これは主にEC-CUBE3(ベースの部分はSliexで、Symfonyっぽい感じで実装しているらしい。けど、詳しいことは知らない。)を使った時の感想なんだけど、 Railsっぽくザクザク書きたいタイプなので、EntityにGetter,Setterとか面倒すぎるし、 いろいろ最初からぶつ切りになっててストレスを感じたので、向いてないと思った。

あとよく名前は聞くけど、日本語の知見はあんまりないよね。

Zend Framework

そもそもライブラリだと思っている。

まとめ

  • モダンなphperになりたいならLaravel
  • レンタルサーバーでなにも考えなくて動かすならComposer必須でないCodeIgniter3やFuelあたり(特にレンタルサーバーでLaravelはハマるので絶対におすすめしない)
  • 正直なところphpフレームワークはRails以上に後方互換性を切っている予感がするので、自分の使っているフレームワークのキャッチアップはし続けないといけない。
  • JS程ではないのだろうけど、生半可な気持ちでphpフレームワークに手を出すと、失敗した時に痛い目にあう。
  • phpのフレームワーク選定めんどくさいって人はRailsでも始めたほうがいいと思っている。