Ben anlam ve teknik olarak burada benim seçimler en uygun hangi merak ediyorum. Ben basit bir cisim bir kayıt defteri sınıf yarattık, ama nesne erişim yöntemi beni en iyi merak vardır. Şu anda ilk varyasyonunu kullanıyorum:
//the Registry methods can chain, each returning a self reference
$registry = Registry::getInstance()->register('myObject', new Object);
//accessing a registered object method
//in various possible ways
Registry::getInstance()->myObject->method(); //1
Registry::getInstance()->use('myObject')->method(); //2
$registry('myObject')->method(); //3
- Birinci varyasyon akıcı sözdizimi ile tutarak,
__get()
büyü kullanır. - İkinci 'getter' yöntemi kullanır
use()
. - Üçüncü kullanımları
__invoke()
öne sürülmüştür büyü, ama ben çok düşkün değilim.
Herkes fikir, ya da bu seçeneklerden herhangi biri (veya hiçbiri) kullanarak doğru bir öneriniz varsa bilmek sadece merak ediyorum. Benim durumumda bir Registry sınıfını kullanarak için nedeni ile (onları ilan use
her zaman hantal) iç içe kapanışları kullanılmak üzere, kilit nesnelerin sözde küreselleşme sağlamaktır
Bu biraz http://stackoverflow.com/questions/4054424/php-closures-and-implicit-global-variable-scope de, benim diğer soruya ilişkilidir
Şimdiden teşekkürler :)