PHP yöntem zincirin ucunu algılama?

1 Cevap php

Yukarıda benim soru hakkında basit bir örnek bulamıyorum: nasıl bir yöntem zincirin ucunu tespit edebilirsiniz?

Ben sadece örneğin Zend_Db_Select baktım ediyorum ama bu bence bu basit soru için çok karmaşık.

PHP bir yöntem zinciri 'sonu' yakalamak mümkün mü?

thanks, fabrik

1 Cevap

Hayır bu mümkün değildir.

Yöntem zincirinin Zend_Db_Select etmez detect sonu. Eğer zincir her yöntemi sadece döndürür $this ve zincirleme durdurmak zaman, zincirleme durdu. Orada diyor ki sihirli bir şeydir: Hey, this is the end of the chain.

Örnek:

$foo = $this->is()->a()->method()->chain();

Tüm yöntemler, tekrar return $this, sonra da $foo chain() sonucunu içeren, böylece $this edin. Oradan zincirleme devam edebilir. Tabii ki, bu buluşun metodları $this, örneğin dönen yanı sıra diğer şeyler yapacak iç durumunu ayarlamak - ama hepsi orada gerçekten yaklaşık Method chaining.

Kodunuz bir zincirin sona erdiğini bilmek gerekiyorsa, örneğin, çalıştırmadan önce kurulum zincir olurdu Chain of Responsibility pattern.