Lumen と Laravel 違い比較 Lumen の日本語読みはルーメン 、Laravel のチームが開発した軽量マイクロフレームワークで github に人気ありそうなので、調べてみました。 生みの親が Laravel で、使い方も laravel と変わることが少ないけど、特徴は API 通信に特化した軽量で速いサーバーサイド PHP フレームワークって感じ。
Lumen と Laravel の違い 項目 Lumen6 Laravel6 日本語公式ドキュメント なし(2020 年 1 月時点) あり config ディレクトリ なし(.env ファイル使う) あり Facade/Eloquent 初期使えない(コメントアウト外せば使える) 使える テンプレートエンジン Blade 使える 使える illuminate/session デフォルト無効 使える artisan コマンド 少ない 多い
Lumen は軽くて速い システム要求
lumen 6.x
PHP >= 7.2 OpenSSL PHP 拡張 PDO PHP 拡張 Mbstring PHP 拡張 laravel 6.x
PHP >= 7.2.0 BCMath PHP 拡張 Ctype PHP 拡張 JSON PHP 拡張 Mbstring PHP 拡張 OpenSSL PHP 拡張 PDO PHP 拡張 Tokenizer PHP 拡張 XML PHP 拡張 laravel の方がでかいから、必要な拡張も多い感じで、ベースの PHP バージョンなどは一緒
スピードは Laravel の 4 倍以上という記事もありますが、同じエンジンで軽い方は速いって感じかなあ
スピード以外にも、CPU やメモりの消費なども Lumen は圧勝したそうです。やはり、ダイエットした効果は大きい。
初期ではコメントアウトされた機能がある Facade/Eloquent はコメントアウトされているため、使う前に解除が必要
Facade の場合、/bootstrap/app.php 内の$app->withFacades()
Eloquent の場合、/bootstrap/app.php 内の$app->withEloquent()
セッション使えない Lumen5.2 から session 無効 になりました。api サーバーならなくてもいいけど、ページ表示など session どうしても使いたいときは以下の記事を参考に
Lumen 6.2 でセッションを使う(opens new window)
Enabling session in lumen framework(opens new window)
Lumen routes 使い方ほとんど一緒ですが、微妙に違うところもあります。
例えばルート設定で lumen と laravel
lumen の場合
Laravel の場合
最後 いろんな記事みてたら、lumen は軽い、そして速いという特徴はみんな言ってます。だが、
特に lumen はえー!すごー!みたいな感じはしなかった
「Lumen は Laravel と似たようなものかと思うと細かいところが違っているので、Laravel に慣れているとはまりがちな印象 」 という微妙な意見もありました。
Lumen と Codeigniter 比較したらどうだ
lumen は公式サイトでは一秒 1900 のリクエスト処理ができて、Silex と Slim 3 より速いことをアピールしています。自分は codeigniter3 を愛用していて lumen と codeigniter 比べたらどうかなあと思って調べたところ、codeigniter は公式サイトにデータ未公開だが、一部の記事では codeigniter4 は 2500 で codeigniter3 でも2250 requests per second のリクエスト処理ができるそうです。しかも、2015 年の時点で。。。
CI4 gave around 2500 requests per second, while CI3 clocked about 2250 requests per second. That’s about a 10% improvement. On code that has had no optimization, yet, and that has a few portions where more files were needed to implement a more robust solution, like the Request and Response process. I’m thrilled by those results so far. 参考:Initial Thoughts on CodeIgniter 4
もともと laravel が好きではない人間にとっては、軽さと速さで勝負するなら、codeigniter で十分じゃんとも思ったりします。