नहीं, ऐसा करने के लिए सिस्टम में कुछ भी नहीं बनाया गया है। Magento सम्मेलन stdClass
या Varien_Object
परिवहन वस्तु बनाना है।
ब्लॉक घटना कोड
#File: app/code/core/Mage/Core/Block/Abstract.php
...
if (self::$_transportObject === null)
{
self::$_transportObject = new Varien_Object;
}
self::$_transportObject->setHtml($html);
Mage::dispatchEvent('core_block_abstract_to_html_after',
array('block' => $this, 'transport' => self::$_transportObject));
$html = self::$_transportObject->getHtml();
...
self::$_transportObject
के बाद से एक वस्तु है पर एक नजर डालें, और PHP वस्तुओं तरीके की तरह एक संदर्भ से व्यवहार करते हैं, एक पर्यवेक्षक में परिवहन वस्तु में किए गए बदलाव बनाए रखा जाएगा। तो, ऊपर के उदाहरण में, अगर एक पर्यवेक्षक डेवलपर
$html = $observer->getTransport()-setHtml('<p>New Block HTML');
कहा वापस प्रणाली ब्लॉक कोड self::$_transportObject
में नए HTML होते हैं। ध्यान रखें कि एकाधिक पर्यवेक्षकों को इस मान को बदलने का मौका मिलेगा, और Magento में ऑर्डर पर्यवेक्षक आग प्रत्येक कॉन्फ़िगरेशन सिस्टम के लिए अलग होंगे।
Magento के रजिस्ट्री पैटर्न का उपयोग करने के लिए आप एक दूसरा दृष्टिकोण ले सकते हैं। dispatchEvent
स्रोत
2012-11-07 20:23:31
उत्कृष्ट से पहले एक चर पंजीकृत करें। धन्यवाद। – Ryan
@Ivan: क्या मैं पर्यवेक्षक में अपने संग्रह को संशोधित करने के लिए इस दृष्टिकोण का उपयोग कर सकता हूं। संग्रह को संशोधित करने के बाद कोज़ और मेरे पर्यवेक्षक से '$ $ को वापस करने का प्रयास करें, संग्रह वही शेष है। मैं उत्पाद संग्रह के साथ काम कर रहा हूं। यदि संभव हो तो आप इसे संक्षिप्त कर सकते हैं – zamil