Ben değişken, bu çok iş olacak geçemez.
Eğer olsa emin misin? İnsanlar bağımlılıkları etrafında geçen çaba abartma eğilimindedir. Eğer yapıcısı bunu yaparsanız, bunu yapmak için genellikle oldukça basit.
O dedi, php farklı şekillerde, küresel kapsamda paylaşılan işlevselliği koyabilirsiniz. Basit bir global işlevini kullanmaktır. Örn. bir fonksiyon, herhangi bir sınıfa ait değildir. Başka bir seçenek statik bir sınıf yöntemi kullanmaktır. Bu iki çok benzer bir; kendi sözdizimi hariç, onlar aslında aynı özelliklere sahip. Biraz gevşek bağlanmış çözüm beton sınıfı uzanan ki, bir (soyut) taban sınıf bir yöntem olarak işlevselliğini koymaktır. Bu, tüm alt sınıflar arasındaki işlevselliği paylaşıyor.
Yukarıda sözü edilen çözümler için ortak bir derleme zaman bir bağlantıya sahip olmasıdır. Eğer uygulama oldukça sert yapar, zamanında bağımlılığını değiştirmek olamaz. Onların ana parası taşıdıkları karmaşıklık düzeyinin düşük olmasıdır.
Eğer gevşek bağlanmış bir uygulama istiyorsanız, yönlendirme düzeyi vermek için, bir değişken ile sabit bağımlılığını değiştirmek için deneyebilirsiniz. Simples bir nesne oluşturmak ve bu uygulama boyunca küresel ortak yapmaktır. Bu tür küresel kapsamda bir singleton ya da sadece bir değişken olarak PHP, bunu yapmak için çeşitli yollar vardır (Sen global
anahtar kelime veya $GLOBALS
ile birlikte bu erişebilirsiniz dizi).
Global değişkenler yönlendirme düzeyi sunarken birbirlerine bağlıdır uygulamanın hangi bölümlerini anlamaya çok zor hale beri, onlar da, karmaşık bir sürü tanıtmak eğilimindedir. Bu nedenle, genellikle deneyimli programcılar tarafından önlenir. Değişken durumu varsa, bu özellikle doğrudur; Paylaşılan nesne vatansız ise sorun daha az yaygındır.
Global değişkenler tehlikeleri önlemek için tek yol, bunun yerine yerel değişkenler kullanmaktır. Örn. Etrafında bağımlılıkları geçmek için. Bu bir güçlük biraz olabilir, ama benim deneyim genellikle olduğu ortaya yapılmış gibi büyük bir sorun değil. En azından, faydaları genellikle sorunlar ağır basmaktadır. O dedi, kolay ağrı teknikleri vardır; Sizin için tüm kablolama dikkat otomatik fabrikaları özellikle bağımlılık enjeksiyon kapları,. Onlar olsa karmaşıklık kendi düzeyi ile gelir, ancak büyük uygulamalar için kesinlikle iyi bir çözüm olabilir.