Benim bağımlılık enjeksiyon değişkenleri typehint gerekir?

0 Cevap php

Sınıf Foo sınıf Bar enjeksiyon gerektirir diyelim. Ben Bar olması gerektiğini biliyor, ya da gelecekte durum Bar değişiklikler, bunu typehint olmamalı çünkü yöntem parametre typehint gerekir?

class Foo {
    public function __construct( Bar $bar ) {
        // do something
    }
}

veya:

class Foo {
    public function __construct( $bar ) {
        // do something
        // the wrong class could be passed in here, but I'm also future-proof in case
        // another class provides similar functionality to Bar
    }
}

Muhtemelen, "en iyi" cevabı Bar bir arabirim uygulamak yapmak için, ama ben gerçekten sadece yakın gelecekte bir uzantısı sınıf olacak bir arayüz oluşturma aptal hissediyorum. En iyi yöntem nedir?

0 Cevap