Là các mã sau trong phtml $this->helper('catalog/category')và Mage::helper('catalog/category')trả về cùng một đối tượng?
Ý nghĩa của việc sử dụng $this->helper()và là Mage::helper()gì?
Là các mã sau trong phtml $this->helper('catalog/category')và Mage::helper('catalog/category')trả về cùng một đối tượng?
Ý nghĩa của việc sử dụng $this->helper()và là Mage::helper()gì?
Câu trả lời:
Về cơ bản, việc $this->helpergọi hàm được chứa bên trong lớp khối của mẫu hiện tại. Đây Mage::helperlà cách gọi hàm trong lớp "Thượng đế".
Bình $this->helperthường gọi một hàm trong lớp Mage_Core_Block_Abstractđể kiểm tra bố cục cho một trình trợ giúp và sau đó chỉ cần gọi bình thường Mage::helpernếu nó không thể tìm thấy một hàm.
/**
* Returns helper object
*
* @param string $name
* @return Mage_Core_Block_Abstract
*/
public function helper($name)
{
if ($this->getLayout()) {
return $this->getLayout()->helper($name);
}
return Mage::helper($name);
}