2010-04-06 9 views
5

मुझे उपरोक्त मेरे प्रश्न के बारे में एक साधारण उदाहरण नहीं मिल रहा है: मैं विधि श्रृंखला के अंत का पता कैसे लगा सकता हूं?PHP में विधि श्रृंखला का अंत पता लगाना?

मुझे उदाहरण के लिए ज़ेंड_Db_Select देखा गया है लेकिन यह मुझे लगता है कि इस सरल सवाल के लिए यह बहुत जटिल है।

क्या PHP में एक विधि श्रृंखला के 'अंत' को पकड़ना संभव है?

धन्यवाद, Fabrik

उत्तर

2

नहीं। यह संभव नहीं है।

Zend_Db_Select विधि श्रृंखला के अंत का पता नहीं लगाता है। आप जिस विधि को चेन करते हैं वह $this लौटाता है और जब आप चेनिंग बंद करते हैं, तो आप चेनिंग बंद कर देते हैं। कोई जादू नहीं है जो कहता है: अरे, यह चेन श्रृंखला का अंत है।

उदाहरण: सभी तरीकों return $this, तो $foo तो $this फिर chain() का परिणाम शामिल होंगे

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

हैं, तो। आप वहां से चेनिंग जारी रख सकते हैं। बेशक, विधियां $this लौटने के अलावा अन्य चीजें भी करेंगी, उदाहरण के लिए आंतरिक स्थिति सेट करें - लेकिन वास्तव में यह लगभग Method chaining है।

यदि आपके कोड को यह पता होना चाहिए कि यह एक श्रृंखला के अंत तक पहुंच गया है, तो आपको इसे चलाने से पहले चेन सेट करना होगा, उदा। Chain of Responsibility pattern

+0

शायद मुझे आपको विश्वास करने की ज़रूरत है लेकिन आप यह कैसे समझा सकते हैं कि Zend_Db_Select बस इसे कर रहा है? – fabrik

+0

@fabrik अपडेट देखें – Gordon

+0

ऐसा लगता है कि मैं इसे फिर से अनदेखा कर रहा हूं। तो यह एक (Zend_Db_Select) सबसे खराब उदाहरण था क्योंकि यह कुछ भी नहीं लाता है, यह केवल क्वेरी बनाता है। क्या मैं सही हू? – fabrik

संबंधित मुद्दे