• 5.6.29
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

Service Container هسته مدیریت وابستگی‌ها در Laravel است. این Container می‌تواند کلاس‌ها و سرویس‌ها را بسازد، وابستگی‌های سازنده را تشخیص دهد و نمونه مناسب را هنگام نیاز به کلاس تزریق کند. نتیجه آن کاهش اتصال مستقیم کلاس‌ها به پیاده‌سازی‌های مشخص است.

نحوه کار و کاربرد

برای وابستگی ساده، Laravel اغلب می‌تواند کلاس را با Reflection بسازد. برای Interfaceهایی که چند پیاده‌سازی دارند، باید Binding تعریف شود. متدهای bind()، singleton() و instance() رفتار ساخت نمونه را کنترل می‌کنند.

نمونه

app()->bind(ReportExporter::class, function ($app) { return new CsvReportExporter(); });

class ReportController extends Controller {
  public function __construct(ReportExporter $exporter) { $this->exporter = $exporter; }
}

نکته

Container محل ثبت و حل وابستگی‌هاست؛ منطق تجاری را داخل Service Provider یا Closureهای Binding انباشته نکنید.

اصطلاحات مرتبط در واژه‌نامه: کنترلر

مطالعه مرتبط در همین مجموعه