ショコラ
Laravel コントローラークラスをインスタンス化するには?
app関数でインスタンス化が良いかなと思います。
もっさん先輩
①app関数でインスタンス化します。
$controller = app(App\Http\Controllers\{コントローラークラス}::class);
②makeメソッドでインスタンス化します。
$controller = app()->make(App\Http\Controllers\{コントローラークラス}::class);
③resolve関数でインスタンス化します。
$controller = resolve(App\Http\Controllers\{コントローラークラス}::class);
resolve関数は vendor/laravel/framework/src/Illuminate/Foundation/helpers.php に↓このように定義されており、app関数呼び出しているだけですね。
if (! function_exists('resolve')) {
/**
* Resolve a service from the container.
*
* @param string $name
* @param array $parameters
* @return mixed
*/
function resolve($name, array $parameters = [])
{
return app($name, $parameters);
}
}