サービスのコード class SendGridService { private $sendGrid; public function __construct() { $this->sendGrid = new SendGrid(config('services.sendgrid.key')); } public function saveUser(User $user): void { // コンタクトリストへの追加処理 } public function sendMail(Mail $mail): void { // メール送信処理 } }
元のサービスのコード class SendGridService { private $sendGrid; public function __construct() { $this->sendGrid = new SendGrid(config('services.sendgrid.key')); } // …その他の処理 }
サービスプロバイダのコード class SendGridServiceProvider extends ServiceProvider { public function register() { $this->app->bind('sendgrid', function ($app) { $sendGrid = new SendGrid(config('services.sendgrid.user.key')); return new SendGridService($sendGrid); }); } }
サービスプロバイダのコード class SendGridServiceProvider extends ServiceProvider { public function register() { $this->app->bind('sendgrid', function ($app) { $sendGrid = new SendGrid(config('services.sendgrid.user.key')); return new SendGridService($sendGrid); }); } } key
サービスプロバイダのコード class SendGridServiceProvider extends ServiceProvider { public function register() { $this->app->bind('sendgrid', function ($app) { $sendGrid = new SendGrid(config('services.sendgrid.user.key')); return new SendGridService($sendGrid); }); } } key value
サービスプロバイダのコード $this->app->bind(SendGridService::class, function () { $sendGrid = new SendGrid(config('services.sendgrid.user.key')); return new SendGridService($sendGrid); });
サービスプロバイダのコード $this->app->bind(SendGridService::class, function () { $sendGrid = new SendGrid(config('services.sendgrid.user.key')); return new SendGridService($sendGrid); }); keyをクラス名に