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 ve Profesyonel 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) Kod Örneği
// 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ğı & En Çok Yapılan 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.

İlgili Diğer Konular
Veritabanı & ORM
Eloquent N+1 Sorgu Problemi & with() Eager Loading

Döngü içinde her satır için veritabanına ayrı ayrı koşup MyS...