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

【Laravel】引数のRequest $requestとは何か?メソッドインジェクション(依存注入)

Laravelのコントローラーでメソッドの引数にクラスが指定されていることがある。これらの役割について。

▼例

public function index(Request $request){ }
public function send(RequestContactSend $request){}


メソッドインジェクション

function 関数名(Request $request)のように、関数の引数にクラス名と変数を記述すると、指定した変数に、指定したクラスのインスタンスが入る

これをメソッドインジェクション(依存注入)という。


メソッドインジェクションのメリット

メソッドインジェクションを使うメリットは、コードを簡略化できること。

▼(例)Requestクラスのallメソッドを呼び出す

メソッドインジェクションなし
public function index()
    {
        $request = new Request();
        $request->all()
    }

メソッドインジェクションあり
public function index(Request $request)
    {
        $request->all();
    }

メソッドインジェクションを使うことて、new クラス名のようにインスタンスを作成する手間を省ける。

yuta-38
メモとして活用してます
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