Help us understand the problem. What is going on with this article?

LumenとLaravelの違いメモ

More than 1 year has passed since last update.

はじめに

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に慣れているとはまりがちな印象。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした