phpフレームワークを使う案件があるのですが、正直なところ、phpでのフレームワークにあまり必要性を感じていませんでした。
これまで、JavaでStrutsなどのフレームワークを使ってきたのですが、そもそもphpを使う時点でそれほどクリティカルでも大規模でもないことが多く、必要な機能も限定されていて、全て一からphpで記述していました。
ルーティングなどをどこかに定義し始めると、単純なシステムを構築したいだけなのに複雑さが増す気もしていました。
しかしやっぱり、セキュリティ、認証、メール送信、ロギングなどの機能を毎回コピペしたり、意識してコーディングするのも工数の無駄に思えてきました。
比較検討
そして比較検討しようとしたのですが、今後も継続的に使用していきたいと考えているため、何かに強い、といった機能的な比較はしても仕方ないのではと考えました。
ある程度のシェアがあるものは機能的にも充分で、情報も多くて調べやすいと思われ、シェアで絞り込んでから機能的なことや使いやすさについて調べてみることにしました。
しかし、以下のGoogleトレンドを見ると、ほとんど検討の余地が無いように見えます。
ワールドワイド
日本
日本ではcakephpが圧倒的に強かったですが、2016年夏頃からcakephpと拮抗し、現在ではlaravelが上回りつつあります。
機能的には必要なものは充分揃っており、どちらかと言えばファットすぎるような気もします。
ネガティブ面
インターネット上でのネガティブな意見としては、
- 複雑(以前はシンプルだった)
- 重い・遅い
- 今伸び盛りなため、バージョンアップ頻度が早い
などが散見されました。
複雑さはある程度は慣れだと思うので、やっていけばボトルネックを最小化できそうな気がします。
しかし、なにかうまく行かないときの調査に時間がかかりそうな気もします。
その調査の情報源を多く確保する意味でも、メインストリームになりつつあるLaravelを選択するのがよさそうですが、バージョンアップ頻度が早く、一年前の情報がすでに使えない可能性もあります。
リリース頻度は以下のようになっています。
2015/02/05 Laravel 5
2015/07/09 Laravel 5.1 LTS
2015/12/21 Laravel 5.2
2016/08/23 Laravel 5.3
2017/01/24 Laravel 5.4
2017/01/24 Laravel 5.4
2017/07/?? Laravel 5.5 LTS
「なんだ、マイナーバージョンじゃないか」という意見もおありでしょうが、5.4を少し触っているだけでも、以下の変更によるWeb上の情報の陳腐化に悩まされました。
- フォルダ構造の変更
- ルート定義ファイルの配置変更
- ルート記述方法の変更
また、バージョン毎の情報が錯綜している現状では、どのバージョンでもいいから本などで体系立てて学んでおきたいですが、日本ではこれからメインストリームになるというステージなせいか、良書もないようです。
今は何でも変化が早いので、ついていかないと降りるしかありませんけれど。
ただ、Laravel 5.1がLTS(ロングタームサポート:長期間、不具合修正やセキュリティパッチなどのサポートが継続されること)なので、プロダクトにはLTSのバージョンを使いたいものです。
LaravelのLTSではバグフィックスは2年間、セキュリティフィックスは3年間提供されます。
まだリリースされていない5.5もLTSなので、5.5の利用をにらんで5.4を使ってみます。
実際に初心者的にLaravel5.4を使ってみて悩んだ点、解決方法などを備忘録も兼ねて残していきたいと思っています。
■□■ Laravel入門 □■□
Laravel 5.4 (1)事始め
Laravel 5.4 (2)インストール
Laravel 5.4 (3)ルーティング基礎(認証)
Laravel 5.4 (4) ルーティングとビューのちょっとだけ入口