Çekirdek her zaman return $this;
gözlemci yöntemleri bağlamında - ancak aslında bunun bir nedeni görünmüyor.
Geriye dönüp dispatchEvent()
bakıldığında, gözlemci yöntemlerini çağıran ana yöntemi bulacaksınız (in ./app/Core/Model/App.php
)
protected function _callObserverMethod($object, $method, $observer)
{
if (method_exists($object, $method)) {
$object->$method($observer);
} elseif (Mage::getIsDeveloperMode()) {
Mage::throwException('Method "'.$method.'" is not defined in "'.get_class($object).'"');
}
return $this;
}
Ancak hiçbir noktada, zincirdeki bir başka gözlemciye iletilmek için gerçekte hiç kullanılmamış veya referans gösterilmemiştir.
Belki de Magento, onu $this
oturum / kayıt defteri kullanmak dışında sınıf içinde verileri tutmak / iletmek için bir araç olarak kullanmak için daha uzun vadeli düşünüyordu ; ya da sadece sıkışmış eski kod olabilirdi .
Zorlayıcı bir neden göremiyorum return $this
- ama söyleniyor, eğer çekirdek içinde yaparlarsa, biz de öyle yaparız.
Genel bir kural olarak, çekirdek ne yaparsa yapsın - biz en iyi uygulamayı kabul ediyoruz. Şok edici heceleme hataları hariç :)