フロントエンドチーフのはずがバックエンド開発ばかりしています、どうも吉舌です。
12Gridではシステム開発時のフレームワークとしてFuelPHPを主に使用していますが、最近の主流はどうやらLaravelのようですね。
というわけで、FuelPHPとLaravelの軽い比較をしてみたいと思います。
前提:フレームワークを利用する際に重要なこと
フレームワークの採用理由は様々かと思いますが、個人的には大きな理由として3つを掲げています。
開発コミュニティの状態
開発コミュニティが活発に動いているかどうかは大きな問題です。
PHPのバージョンアップに合わせた新しい機能を利用したり、過去のバージョンでの負債を解消したり、ライブラリが豊富に用意されていたり、そのような利益を享受できるのはコミュニティが活発に動いているからです。
開発が停滞しているフレームワークは良い意味で枯れているものとなりますが、それを上回るデメリットが発生してしまうので考えものです。
公式ドキュメントを含む情報の豊富さ、精度
開発中に行き詰ってしまうことは多々あると思います。
そんな時に参照するドキュメントや誰かが作成した記事が豊富にあるかどうかは重要ですが、公式ドキュメントの内容をそのまま模倣した、いわゆる「やってみた」系記事が多いのも確かです。
自分の開発経緯を発信することは悪いことではないのですが、利用者が多いフレームワークほど情報の精度が下がってしまうのも事実なので注意したい点といえます。
フレームワークで用意されている機能を理解しているか
各フレームワークはそれぞれ特徴があり、その最たるものとしてはoilやartisanといったCLIがあげられます。
すべてを手書きで開発していくことは可能ですが、CLIを利用することで開発速度を格段に向上させることができます。
そのため、フレームワークの機能を理解できているかどうかも重要な点となります。
FuelPHPとLaravelのどちらが良いか
前述の3点を踏まえたうえでFuelPHPとLaravelのどちらが良いフレームワークなのか、玉虫色の回答となってしまいますが「時と場合による」というのが結論です。
12Gridでは既にFuelPHPの知見があり新しくLaravelを利用する価値は薄いところですが、これからどちらかのフレームワークを採用する場合はメリット・デメリットをしっかり踏まえたうえで決定してほしいと思います。
FuelPHPのメリット・デメリット
実行速度が速い ⇔ コード記述量が増える
FuelPHPはとてもシンプルなフレームワークなので負荷に強く表示速度もあまり問題になりません。
ただし実装時には独自の機能拡張が必要になる可能性が高いので、必然的にコード記述量が増えます。
自由度が高い ⇔ 敷居が高い
前述の通り独自実装が必要になりますが拡張していくことができるので自由度は高いです。
反面、自ら実装する必要がでてくるので敷居は高くなりがちです。
安定している ⇔ 更新が遅い
FuelPHPの最新メジャーバージョンは2019年9月27日時点で1.8となっていますが、リリースされたのは2016年4月9日と3年以上前になります。
そのため知見がどんどん貯まっていきますが、更新が遅いということは最新機能の取り込みが遅いということにほかなりません。
Laravelのメリット・デメリット
コンポーネントが豊富 ⇔ 実行速度が遅い
Laravelは豊富なコンポーネントを利用することでコードの記述量を減らすことができます。
かなり多機能なので手軽に実装することができますが、それゆえ実行速度が犠牲になっています。
負荷が高くなるような場合にはリプレイスが必要な可能性もあるので、その点を考慮に入れる必要があります。
初学者でも触りやすい ⇔ 情報の精度が落ちる
コンポーネントの利用やCLIによって初心者でも簡単に機能を実装していくことができます。
そのため利用者は常に上昇傾向にあるのですが、逆に言うと初学者の記事がネット上に溢れています。
基本的な情報は公式ドキュメントを読むだけで十分で、それ以外で探す情報は応用編の情報になるのですが、初学者の記事に埋もれて探しづらいのが痛いところです。
更新が早い ⇔ 学習コストがかかる
つい先日2019年9月3日にLaravelの最新LTS、バージョンv6.0がリリースされましたが、以前のLTSのv5.5リリースは2017年8月30日で、v6.0リリースまでに3度のマイナーバージョンアップがありました。
こまめに更新をするため先進的な機能が実装されていますが、それらを使いこなすためには学習が必要不可欠となってきます。
エンジニアとして仕事をしていくうえで学習は避けられないのであまり問題にはなりませんが、実作業と並行しての学習は大変難しいものなので学習コストはなるべく抑えたいところです。
結論
FuelPHPとLaravelどちらもメリット・デメリットがあるので一概には言えませんが、12Gridの結論としては新しくLaravelを利用せずFuelPHPのままで良いのではと考えています。
手軽に素早く実装するならLaravel、製品としてチューニングし続けるのであればFuelPHPといった使い分けが個人的には1番しっくりきます。
フレームワークの選定については賛美両論あると思うので、ぜひあなたの考えをコメントに記載して欲しいです。