Servis bulucu enjeksiyonu (ARCH7198)
Anahtar php.quality.service-locator · Önem warning · Kategori quality
DI konteynerini enjekte edip servisleri ondan çözmek bağımlılıkları gizler ve test edilebilirliği bozar. Bağımlılıkları doğrudan yapıcıdan enjekte edin.
Hatalı
Bölüm başlığı “Hatalı”<?phpclass OrderService{ public function __construct(private ContainerInterface $container) {}
public function place(Order $o): void { $this->container->get(Mailer::class)->send($o); }}<?phpclass OrderService{ public function __construct(private Mailer $mailer) {}
public function place(Order $o): void { $this->mailer->send($o); }}Düzeltme
Bölüm başlığı “Düzeltme”Konteyner yerine somut bağımlılıkları doğrudan yapıcı parametresi olarak enjekte edin.