Ядро всегда return $this;
в контексте методов наблюдателя - но на самом деле нет причин для этого.
Проследуя назад, dispatchEvent()
вы найдете основной метод, который вызывает методы наблюдателя (в ./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;
}
Но ни в коем случае возвращаемое значение никогда не использовалось или не использовалось для передачи другому наблюдателю по цепочке.
Возможно, Magento подумал о том, чтобы использовать его как средство для сохранения / передачи данных внутри $this
экземпляра класса вне использования сессий / реестра; или это мог быть устаревший код, который только что застрял .
Я не вижу убедительной причины return $this
- но, как говорится, если они делают это в основном, это то, что мы делаем.
Как правило, независимо от того, что делает ядро - мы считаем наилучшей практикой. За исключением шокирующих орфографических ошибок :)