LoginSignup
6
7

More than 5 years have passed since last update.

LumenとLaravelの違いメモ

Last updated at Posted at 2018-07-24

はじめに

Lumenを使っていて出会ったあれ?と思ったことをメモ。

大きな違いはララ帳のLUMENとLARAVELの違いなどにまとまっていますが、細かなところでもちょこちょこ違うようです。

問題に出会ったら追記していきます。

responseまわり

  • responseヘルパーの中にLaravel\Lumen\Http\ResponseFactoryクラスがハードコードされています。(LaravelのはDIコンテナでIlluminate\Contracts\Routing\ResponseFactoryを解決するようになっています)
  • Responseファサードがありません。
    • Responseファサードのクラス自体はあるのですが、getFacadeAccessor()が返すResponseFactoryContractクラスがDIコンテナに登録されていないので使えません。
    • Laravel\Lumen\Applicationクラスが登録するファサードのaliasのリストにも含まれていないしマニュアルにも記述がないので存在しないことになっていると思われます

routeまわり

  • 名前をつけるのにname()メソッドが使えません。かわりに以下のように書きます。
$router->get('profile', [
    'as' => 'profile', 'uses' => 'UserController@showProfile'
]);

envまわり

  • 読み込む環境設定ファイルが.env固定になっていて、--envオプションやAPP_ENV環境変数の値でsuffix違いのを読み込む機能がありません。(軽量化のため?)
    • phpunitのときはテスト用のDB接続を使いたいといったときに面倒なので、自分はbootstrap/app.phpを書き換えました。

testまわり

  • Laravelでは5.5からtestsディレクトリがTestsというnamespace下に置かれたのですが、Lumenはnamespaceがないままです。
  • RefreshDatabaseトレイトがありません。
  • route()ヘルパーが返す値がおかしいのでそのままでは使えません。
    • これについてはLaravel NewsにUsing Named Routes in a Lumen Testという記事があってどうすればいいかも書いてありますがやや面倒です。

おわりに

LumenはLaravelと似たようなものかと思うと細かいところが違っているので、Laravelに慣れているとはまりがちな印象。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7