Ядро завжди 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
- але, якщо говорити, якщо вони це роблять в основі, це ми робимо.
Як правило, що б не було в основі - ми вважаємо найкращу практику. За винятком шокуючих орфографічних помилок :)