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);