LoginSignup
0
0

More than 1 year has passed since last update.

【Laravel】サービスコンテナ

Last updated at Posted at 2022-07-11

サービスコンテナ

なんか書き方が豊富で混乱してきたので、整理したい

サービスコンテナとは

  • フレームワークは多くのクラスによって構成されている
    • コントローラやモデルもクラス
  • クラスのインスタンスを管理するのが、サービスコンテナ

サービスコンテナの実体

Illuminate\Foundation\Applicationクラス

インスタンスの生成

まずはPHPでの書き方をおさらい

$hoge = new \App\Services\HogeService();

インスタンスの取得

// app関数から取得する
$app = app();

// Application::getInstanceメソッドから取得
$app = \Illuminate\Foundation\Application::getInstance();

// Appファサードから取得
$app = \App::getInstance();

インスタンスの取得&生成

makeメソッド

app()->bind(Number::class,function(){
	return new Number();
});

// app関数から取得する
$number1 = app()->make(Number::class);

// Application::getInstanceメソッドから取得
$number2 =  \Illuminate\Foundation\Application::getInstance()->make(Number::class);

// Appファサードから取得
$number3 = \App::getInstance()->make(Number::class);

app ヘルパ関数

app()->bind(Number::class,function(){
	return new Number();
});

$number4 = app(Number::class);

引用

参考

0
0
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
0
0