Der Kern immer return $this;
im Kontext von Beobachtermethoden - aber es scheint eigentlich keinen Grund dafür zu geben.
Wenn Sie zurückblättern dispatchEvent()
, finden Sie die Hauptmethode, die Observer-Methoden aufruft (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;
}
Zu keinem Zeitpunkt wird der tatsächlich verwendete oder referenzierte Rückgabewert an einen anderen Beobachter in der Kette weitergegeben.
Vielleicht dachte Magento längerfristig darüber nach, es als Mittel zu verwenden, um Daten innerhalb der $this
Klasseninstanz zu behalten / weiterzugeben , ohne Sitzungen / Registrierung zu verwenden. oder es könnte Legacy-Code gewesen sein, der gerade hängen geblieben ist .
Ich kann keinen zwingenden Grund dafür sehen return $this
- aber wenn sie es im Kern tun, dann tun wir das auch.
Grundsätzlich gilt, was auch immer der Kern tut - wir sind der Meinung, dass dies die beste Vorgehensweise ist. Mit Ausnahme der schockierenden Rechtschreibfehler :)