امنیت و معماری · ۹ دقیقه مطالعه

Service Container، Provider و Config

Service Container — تزریق وابستگی

Laravel وابستگی‌ها را خودکار می‌سازد و تزریق می‌کند:

public function __construct(private PaymentGateway $gateway) {}
// Laravel خودش PaymentGateway را می‌سازد و می‌دهد

Binding در Service Provider

// در AppServiceProvider::register()
$this->app->bind(PaymentGateway::class, ZarinpalGateway::class);

حالا هرجا PaymentGateway بخواهی، ZarinpalGateway تزریق می‌شود — تعویض پیاده‌سازی بدون تغییر کد مصرف‌کننده (همان اصل interface که در PHP OOP دیدی).

Service Provider

مرکز راه‌اندازی اپ؛ در bootstrap/providers.php ثبت می‌شوند. register() برای binding، boot() برای اجرای راه‌انداز.

Config و .env

// config/services.php
'zarinpal' => ['key' => env('ZARINPAL_KEY')],
config('services.zarinpal.key');
  • مقادیر محیطی در .env (خارج از گیت).
  • برای تولید: php artisan config:cache (سرعت بالا).

Container و Provider، معماریِ تمیز و قابل‌تستِ Laravel را ممکن می‌کنند.

برای ثبت پیشرفت و کسب XP وارد شو.

ورود به میدان
→ Middleware و Authorization