Service Container
Dependency injection and binding
The service container is Laravel's tool for managing class dependencies and performing dependency injection.
The service container manages class dependencies and performs dependency injection.
You request
UserNotifier
Container builds
SmtpTransport
Injects into
Mailer
Returns
UserNotifier
PHP
// Without container: manually creating dependencies
$mailer = new Mailer(new SmtpTransport('smtp.example.com'));
$notifier = new UserNotifier($mailer);
// With container: automatic resolution
$notifier = app(UserNotifier::class);