Hayır, bunu yapmak için sistemde yerleşik hiçbir şey yok. Magento sözleşmesi, bir stdClass
veya Varien_Object
aktarım nesnesini oluşturmaktır.
self::$_transportObject
yana
#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();
...
bir amacı, blok olay kodu görebilirsiniz ve PHP şekilde gibi bir referans davranırlar nesneleri, gözlemci taşıma nesne üzerinde yapılan herhangi bir değişiklik muhafaza edilecektir. Yani, yukarıdaki örnekte, eğer bir gözlemci geliştiricisi yeni HTML içerecektir yedekle sistemi blok kodu self::$_transportObject
yılında
$html = $observer->getTransport()-setHtml('<p>New Block HTML');
söyledi. çok sayıda gözlemcinin bu değeri değiştirebileceğini ve Magento'daki sipariş gözlemcilerinin her bir yapılandırılmış sistem için farklı olacağını unutmayın.
Yapabileceğiniz ikinci bir yaklaşım Magento'nun kayıt defteri desenini kullanmaktır. dispatchEvent
'dan önce bir değişken kaydedin. Teşekkürler. – Ryan
@Ivan: Bir gözlemciyi koleksiyonumda değiştirmek için bu yaklaşımı kullanabilir miyim? Coz koleksiyonu değiştirdikten ve gözlemciden '$ $' ı döndürmeye çalıştıktan sonra koleksiyon aynı kalıyor. Ürün koleksiyonu ile çalışıyorum. Mümkünse – zamil