PHP (Laravel) Orta Seviye Mimari & DI

Laravel Service Container & Service Providers

Tüm sınıfların bağımlılıklarını tek merkezden yöneten ve otomatik enjekte eden sihirli kutudur.

5 Yaşındaki Çocuğa Anlatır Gibi (Analoji)

Bir oto tamir atölyesindeki alet panosudur. Tamirci "13 numara anahtar" istediğinde çırak (Container) panodan uygun anahtarı alır ve tamirciye uzatır.

Teknik & Mimari Tanım

Laravel'in kalbi olan IoC (Inversion of Control) konteyneridir. Service Provider'lar ise bu konteynere sınıfların (interface-implementation) nasıl kaydedileceğini ve bootstrap edileceğini belirten konfigürasyon sınıflarıdır.

Mülakatta Ne Demelisin? (Kurtarıcı Altın Cevap)

“Service Container, Laravel'de sınıfların bağımlılıklarını otomatik olarak çözümleyen (Dependency Injection) yapıdır. Service Provider'lar ise bu container'a servis bağlama (bind, singleton, scoped) ve boot etme işlemlerinin yapıldığı merkezi giriş kapılarıdır.”

PHP (Laravel) Örnek Uygulaması
// AppServiceProvider.php içinde bağlama:
public function register(): void
{
    $this->app->bind(PaymentGatewayInterface::class, StripePaymentGateway::class);
    $this->app->singleton(RedisClient::class, fn() => new RedisClient());
}
Mülakat Tuzağı & Adayların En Sık Yaptığı Hata:

Sınıf içinde "new StripePaymentGateway()" yazarak bağımlılığı sıkı bağlamak (Tight Coupling) ve birim test yazılamaz hale getirmek.