2010-02-03 13 views
11

मैं वर्तमान में वाईआई ढांचे को सीख रहा हूं और अपने दस्तावेज पढ़ चुके हैं।yii घटक: घटनाएं और व्यवहार?

लेकिन मुझे अभी भी घटक समझ में नहीं आ रहा है। ये क्या हैं। वे घटक घटनाओं और व्यवहार के बारे में बात करते हैं।

क्या कोई मेरे लिए इन शर्तों को समझा सकता है और मुझे वास्तविक ऐप उदाहरण दे सकता है कि एक घटक, इसकी घटनाएं और व्यवहार क्या हो सकते हैं?

सहायक होगा!

उत्तर

5

स्वयं द्वारा एक CComponent बहुत कुछ नहीं करता है। यह क्यूटी में एक QObject की तरह बहुत है। एक CComponent घटनाओं को बढ़ा सकते हैं, और घटनाओं के लिए प्रतिनिधि हो सकता है (attachEventHandler() के माध्यम से)।

व्यवहार के बारे में, मैनुअल का कहना है:

व्यवहार के तरीकों कर सकते हैं लागू किया जा रूप में यदि वे घटक के हैं। एक ही घटक से जुड़े कई व्यवहार हो सकते हैं।

किसी घटक को व्यवहार संलग्न करने के लिए, कॉल संलग्नक व्यवहार; और घटक से व्यवहार को अलग करने के लिए, अलग-अलग व्यवहार करें।

एक व्यवहार अस्थायी रूप से सक्षम किया जा सकता है या सक्षमकर्ता या अक्षम व्यवहारकर्ता को क्रमशः अक्षम करके अक्षम किया जा सकता है। जब अक्षम, व्यवहार विधियों को घटक के माध्यम से नहीं बुलाया जा सकता है।

संस्करण 1.1.0 से शुरू, एक व्यवहार के गुण (या तो अपने सार्वजनिक सदस्य चर या टिककर खेल और/या setters के माध्यम से परिभाषित अपनी गुण) घटक यह से जुड़ा हुआ है के माध्यम से पहुँचा जा सकता है।

जो तुम संभावना (सक्षम करने या व्यवहार को अक्षम करके) एक signals and slots तंत्र, या strategy pattern अनुकरण करने के लिए देता है।

वाईआई में अधिकांश कक्षाओं में बेस क्लास के रूप में CComponent है।

उपयोगकर्ता के रूप में, आप ऊपर वर्णित तंत्र के माध्यम से प्रदान किए गए लाभ देखेंगे जब आप अपने स्वयं के घटक (संरक्षित/घटकों /) के तहत बनाएंगे। http://www.yiiframework.com/doc/guide/basics.component

4

Yii में, एक आवेदन विभिन्न वस्तुओं के बातचीत के माध्यम से काम करता है

आप यहाँ घटकों को लागू करने के लिए एक अच्छा प्रारंभिक बिंदु पा सकते हैं , इन ऑब्जेक्ट को एप्लिकेशन के "घटक" या "बिल्डिंग ब्लॉक" माना जा सकता है। एक घटक केवल एक वस्तु है जो किसी Yii अनुप्रयोग में किसी विशेष कार्य को निष्पादित करने या सुविधा प्रदान करने के लिए लिख रहा है। यदि आपने पर "वाईआई एप्लिकेशन का विशिष्ट वर्कफ़्लो" देखा है [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc][1]

आपको एहसास होगा दृश्य और लेआउट से (जिन्हें स्क्रिप्ट माना जाता है) और अनुक्रमणिका से।PHP, सब कुछ जो दूसरों के साथ बातचीत करता है वह एक घटक है। एप्लिकेशन चलाए जाने पर वे सभी अलग-अलग कार्य करते हैं।

वाईआई में लगभग हर चीज एक घटक है (या CComponent कक्षा से व्युत्पन्न)।

अधिक विशेष रूप से,

CComponent, लाक्षणिक गुणों और घटनाओं का उपयोग कर के प्रोटोकॉल को लागू करता है "

घटनाक्रम:। घटनाक्रम आप गतिविधियों का क्रम (एक से अधिक) करने की अनुमति जब किसी घटक के भीतर कुछ विशिष्ट होता है। आप किसी ईवेंट को परिभाषित करते हैं और उस घटना में कई फ़ंक्शंस (क्रियाएं) संलग्न करते हैं। अब, जब भी वह घटक घटक के भीतर उठाया जाता है, तो उस ईवेंट से जुड़े सभी फ़ंक्शंस निष्पादित होते हैं। मेरी समझ के अनुसार , ये कुछ हद तक हैं वर्डप्रेस में हुक की अवधारणा के समान।

एक घटक में घटनाओं की विशिष्ट अनुप्रयोग

रूप Yii द्वारा परिभाषित किया गया यह उपयोगी होता है जब आप आधार वर्ग के विस्तार के बिना सामान्य आवेदन के प्रवाह को बाधित करना चाहते हैं।

व्यवहार: व्यवहार बस एकाधिक वंशानुक्रम, जो PHP5 द्वारा समर्थित नहीं है, जबकि बहु उत्तराधिकार के कई समारोह-एक ही नाम की समस्या से दूर कर रही है के साथ आप प्रदान करने के Yii का तरीका है। यदि आप कक्षा ए और बी से गुणों और विधियों का उत्तराधिकारी बनाना चाहते हैं तो आप कक्षा ए का विस्तार करते हैं और उसके बाद कक्षा बी को इसके व्यवहार के रूप में संलग्न करते हैं, और फिर आप कक्षा बी के सभी तरीकों का भी उपयोग कर सकते हैं। अब, यदि ए और बी दोनों में 'usefulfunction()' नामक एक फ़ंक्शन शामिल है, तो इस फ़ंक्शन के सभी कॉल के परिणामस्वरूप कक्षा ए से केवल 'उपयोगीफंक्शन' निष्पादित किया जाएगा। यदि कक्षा ए और बी दोनों को कक्षा में व्यवहार के रूप में जोड़ा गया था, तो 'उपयोगी कार्य' कॉल का परिणाम उस व्यवहार से विधि का निष्पादन होगा जो पहले संलग्न था।

पीएस (मैं एक विशेषज्ञ नहीं हूं। इसलिए अगर मैं कहीं भी गलत हूं तो कृपया मुझे सही करें।)