Cốt lõi luôn return $this;
nằm trong bối cảnh của các phương thức quan sát viên - nhưng thực tế không có lý do nào cho nó.
Truy tìm lại thông qua dispatchEvent()
bạn sẽ tìm thấy phương thức chính gọi các phương thức quan sát viên (trong ./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;
}
Nhưng không có giá trị trả về nào thực sự được sử dụng hoặc được tham chiếu để chuyển vào một người quan sát khác trong chuỗi.
Có lẽ Magento đã suy nghĩ lâu dài hơn để sử dụng nó như một số phương tiện để giữ lại / truyền dữ liệu trong thể hiện của $this
lớp bên ngoài việc sử dụng các phiên / sổ đăng ký; hoặc nó có thể là mã di sản vừa bị mắc kẹt .
Tôi không thể thấy một lý do thuyết phục nào return $this
- nhưng điều đó được nói, nếu họ làm điều đó trong cốt lõi, đó là những gì chúng ta làm.
Theo nguyên tắc chung, bất cứ điều gì cốt lõi làm - chúng tôi coi thực tiễn tốt nhất. Ngoại trừ những lỗi chính tả gây sốc :)