gpt4 book ai didi

magento - 单击 magento 购物车上的编辑按钮时会调用哪些观察者?

转载 作者:行者123 更新时间:2023-12-01 03:11:12 25 4
gpt4 key购买 nike

我已经创建了一个观察者,在编辑按钮点击事件发生之前。
使用这个我可以改变选择框的值

最佳答案

要调用观察者,应该存在两件事,一个事件和一个 $observer它监听该事件。要在事件上设置观察者,只需使用 google,您就会了解如何操作。

如果你想调试你的观察者,你可以观察两个重要的方法来了解发生了什么。第一个是 Mage_Core_Model_App#dispatchEventapp/code/core/Mage/Core/Model/App.php:1271

public function dispatchEvent($eventName, $args)                                
{
$eventName = strtolower($eventName);
foreach ($this->_events as $area=>$events) {
// (...)

这是所有事件都停止的地方。在开发过程中,您可以查看 $eventName通过在此处设置断点(我最喜欢的),将值记录到文件中,甚至变得非常脏和简单 echo看看引擎盖下。
public function dispatchEvent($eventName, $args)
echo "BlaBlaBla"; // just used to find the printed lines in view source code of browser
print_r($eventName);

$eventName = strtolower($eventName);
foreach ($this->_events as $area=>$events) {
// (...)

请记住,您正在编辑核心文件,这只是为了探索和查找事件名称,然后去掉这些行。

实际完成这项工作的第二种方法是 Mage_Core_Model_App#_callObserverMethodapp/code/core/Mage/Core/Model/App.php:1338
/**  
* @param object $object
* @param string $method
* @param Varien_Event_Observer $observer
* @return Mage_Core_Model_App
* @throws Mage_Core_Exception
*/
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;
}
$object->$method($observer)将在对象上调用观察者方法,就像在设置断点、记录到文件甚至 echo 之前一样看看幕后发生了什么。

首先找到你感兴趣的事件,然后尝试将事件添加到观察者中,如果不行,可以使用第二种方法进行调试。

而且,是的...... Magento 从来都不是简单的。

关于magento - 单击 magento 购物车上的编辑按钮时会调用哪些观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52071282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com