Dependency injection
Laravel’s container supplies concrete constructor or method dependencies.
What it is
Laravel’s container supplies concrete constructor or method dependencies.
When to use it
Use to make collaboration explicit without manually wiring each controller.
Syntax
public function __construct(private OrderService $orders) {}Example
class OrderController extends Controller
{
public function __construct(private OrderService $orders) {}
public function store(StoreOrderRequest $request)
{
$order = $this->orders->place($request->user(), $request->validated());
return response()->json(["id" => $order->id], 201);
}
}Common mistakes
Concrete classes often auto-resolve; interfaces need container bindings only when justified.