Php 挂接所有magento前端控制器操作之前[magento]

Php 挂接所有magento前端控制器操作之前[magento],php,magento,Php,Magento,我想做一个特殊的手术 进行外部API更新或 重定向到其他路径等 当使用特定get参数请求任何前端url时 e.g domain.com/checkout/cart?process=true 我的模块是否可以检测何时使用特定参数发出请求?您需要编写一个观察者方法,并在“控制器动作布局加载之前”事件中调用它来获取参数。您需要编写一个观察者方法,并在“控制器动作布局加载之前”事件中调用它事件来获取参数。您可以使用事件控制器\u操作\u预处理。这在每个控制器的preDispatch方法中调用。 在

我想做一个特殊的手术

  • 进行外部API更新或
  • 重定向到其他路径等
当使用特定get参数请求任何前端url时

e.g domain.com/checkout/cart?process=true

我的模块是否可以检测何时使用特定参数发出请求?

您需要编写一个观察者方法,并在“控制器动作布局加载之前”事件中调用它来获取参数。

您需要编写一个观察者方法,并在“控制器动作布局加载之前”事件中调用它事件来获取参数。

您可以使用事件
控制器\u操作\u预处理
。这在每个控制器的
preDispatch
方法中调用。
在您的观察者中,您可以从
$\u get
中获取任何参数,如下所示:

$param = Mage::app()->getRequest()->getParam('param_name_here');
Mage::app()->getFrontController()
    ->getResponse()
    ->setRedirect('URL GOES HERE')
    ->sendResponse();
exit; //it seams that this exit is important.
您可以执行如下重定向:

$param = Mage::app()->getRequest()->getParam('param_name_here');
Mage::app()->getFrontController()
    ->getResponse()
    ->setRedirect('URL GOES HERE')
    ->sendResponse();
exit; //it seams that this exit is important.

您可以使用事件
控制器\u操作\u预剥离
。这在每个控制器的
preDispatch
方法中调用。
在您的观察者中,您可以从
$\u get
中获取任何参数,如下所示:

$param = Mage::app()->getRequest()->getParam('param_name_here');
Mage::app()->getFrontController()
    ->getResponse()
    ->setRedirect('URL GOES HERE')
    ->sendResponse();
exit; //it seams that this exit is important.
您可以执行如下重定向:

$param = Mage::app()->getRequest()->getParam('param_name_here');
Mage::app()->getFrontController()
    ->getResponse()
    ->setRedirect('URL GOES HERE')
    ->sendResponse();
exit; //it seams that this exit is important.

您可以查看事件和观察者您可以查看非常有趣的事件和观察者。谢谢我可以从事件处理程序内部执行“重定向”吗?非常有趣。谢谢我可以从事件处理程序内部执行“重定向”吗?啊,太好了。这正是我要找的!谢谢,我将试一试。@Marius我已经使用了事件控制器\u action\u predispatch,如果用户没有使用上述代码登录,我将在我的观察者中再次重定向到主页。但它仍然进入重定向循环。啊,太好了。这正是我要找的!谢谢,我将试一试。@Marius我已经使用了事件控制器\u action\u predispatch,如果用户没有使用上述代码登录,我将在我的观察者中再次重定向到主页。但它仍然进入重定向循环。