امنیت و معماری
·
۹ دقیقه مطالعه
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 را ممکن میکنند.