我如何覆盖Mage_Core_Controller_Request_Http

2024-04-07

我对 Mage_Core_Controller_Request_Http 做了一些更改,但在使用 magento 分发的文件中。我知道这不是最好的方法,但我无法弄清楚如何覆盖控制器目录中的文件。我可以找到如何覆盖控制器目录中的文件。

谁能告诉我如何在我自己的扩展中覆盖 Mage_Core_Controller_Request_Http 。

thanks


如果您不想恢复到包含路径黑客,您还可以使用反射在Mage_Core_Model_App模型。您可以使用观察者controller_front_init_before为此举办的活动。
我假设您熟悉如何创建事件观察器,因此我将仅添加观察器方法的代码。如果您需要更多信息,请询问。

// Observer method
public function controllerFrontInitBefore(Varien_Event_Observer $observer)
{
    $app = Mage::app();
    $reflection = new ReflectionClass($app);
    $property = $reflection->getProperty('_request');
    $property->setAccessible(true);
    $myRequest = new Your_Module_Controller_Request_Http();
    $myRequest->setOrigRequest($app->getRequest()); // if needed
    $property->setValue($app, $myRequest);

    // Proof of concept:
    // Loggs Your_Module_Controller_Request_Http
    Mage::log(get_class(Mage::app()->getRequest()));
}

创建班级Your_Module_Controller_Request_Http并扩展原来的Mage_Core_Controller_Request_Http.
在该事件之后,将使用您的请求对象而不是原始对象。

这使您能够尽可能保持升级安全,因为您不必从 cor 代码池复制完整的类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何覆盖Mage_Core_Controller_Request_Http 的相关文章

随机推荐

  • 我的枚举可以有友好的名称吗? [复制]

    这个问题在这里已经有答案了 我有以下内容enum public enum myEnum ThisNameWorks This Name doesn t work Neither does this 是不是不可能有enum带有 友好名称 你可
  • PHP如何获取基域/url?

    function url if isset SERVER HTTPS protocol SERVER HTTPS SERVER HTTPS off https http else protocol http return protocol
  • 删除文本文件 php 中的一行[重复]

    这个问题在这里已经有答案了 所以我的想法是使用正则表达式在文本文件中查找特定行 然后用空白替换该行 实质上将其删除 但是 我正在努力在文本文件中重写带有空白的行 elseif inquiry delete file fopen databa
  • 使用 getopt 时“for i”没有“in [sequence]”结尾

    我找到了在 shell 中使用 getopt 命令的示例脚本 bin bash args getopt ab set args for i do case i in a shift echo it was a b shift echo it
  • RNC 中交织

    我有三个具有不同属性值的 p 的源代码 我尝试对元素进行任意顺序以及一个强制元素 p class paragraph1 即任意数量的第 1 段 第 2 段和第 3 段 按任意顺序 但必须至少有一个段落 1 下面我尝试了 RNC 中的交错选项
  • PDF Tm 运算符

    我试图突出显示 PDF 文档中的文本 但我发现了一个带有以下操作数的 Tm 运算符 0 7 98 7 98 0 90 8898 715 4183 Tm Tm 运算符应该仅在其操作数上替换文本矩阵和文本行矩阵 根据Pdf Reference
  • 如何使用.NET设置文件夹权限?

    是否可以使用小型 NET 页面来设置其所在服务器上某些文件夹的文件夹权限 可用于此目的的代码或对象是什么 我使用的是 Windows Server 2003 基本上我想使用 GET 或 POST 访问页面并运行它并检查和 或更新文件夹的权限
  • Delphi Datasnap ISAPI 模块上的 CORS 问题

    我们在 AngularJS 客户端访问 Datasnap REST Delphi 10 1 Berlin 服务器时遇到问题 我无法激活授权 因为 Angular 无法在 Pragma 标头中发送 dssession 这似乎是 CORS 的问
  • 如何处理时间耦合?

    我正因为这个而挣扎 我的类有一些具有时间耦合的方法 这是一些方法MethodA必须首先调用来 初始化 数据MethodB需要正常工作 我通常通过将有问题的依赖传递给 方法B 作为论据 就像这个片段中一样 private class Some
  • vue组件名必须小写?

    我正在尝试在我的视图文件中使用一个组件 以下不起作用 当我尝试在我的视图中安装组件时
  • 根据列表从表中选择行

    我有这张表 col1 lt c 1 2 3 4 5 col1 lt sample col1 1000 replace TRUE prob c 0 2 0 2 0 2 0 2 0 2 col2 lt c 6 7 8 col2 lt sampl
  • 使用 StreamWriter 将行附加到文件

    我想将行附加到我的文件中 我正在使用 StreamWriter StreamWriter file2 new StreamWriter c file txt file2 WriteLine someString file2 Close 我的
  • cscope 或 ctags 为什么选择其中之一? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我主要使用 vim gvim 作为编辑器 并且正在考虑结合使用lxr Linux 交叉参考 http
  • 使用 CMake 添加仅标头依赖项

    我有一个简单的项目 需要三个仅头文件库才能编译 网络套接字 https github com zaphoyd websocketpp spdlog https github com gabime spdlog and 恩洛曼 json ht
  • Visual Studio 2015 IIS Express 500 错误

    我有一个 ASP Net 网站项目 我正在将其迁移到 Net 4 6 1 我已经安装了 Visual Studio 2015 Community 并且已成功编译并构建了网站及其组件 DLL 当我尝试使用 IIS Express 通过 F5
  • 如何使用循环将字符串连接成一个?

    有人可以帮我解决字符串连接问题吗 我从寄存器读取数据 它的函数 utf regAddr length 我得到带有十进制数字的表格 然后将其转换为十六进制并循环字符串 我需要将这些字符串连接成一个 Lua中没有像 这样的操作符 functio
  • 在 Lisp 解释过程中,“读者”的任务是什么?

    我想知道 读者 在解释 编译 Lisp 程序期间的目的 或者更准确地说 是 读者 的任务 从我刚刚完成的问题前研究来看 在我看来 读者 特别是本例中的 Clojure 可以被视为 语法预处理器 它的主要职责是读取器宏和原始形式的扩展 所以
  • 通过引用传递 - 为什么调用这个析构函数?

    我找不到 在关于析构函数调用主题的许多问题中 任何与我的情况完全相同的问题 当传递的参数是引用时 为什么会调用析构函数 我将注释 主要在 main 中 放在我认为执行输出的代码行下 struct X simple test class in
  • 从 CLR 样式类型全名获取 C# 样式类型引用

    给定通过反射找到的 NET 类型对象 是否可以将此类型漂亮地打印或反编译为 C 声明 同时考虑到 C 类型别名等 例如 Int32 gt int String gt string Nullable
  • 我如何覆盖Mage_Core_Controller_Request_Http

    我对 Mage Core Controller Request Http 做了一些更改 但在使用 magento 分发的文件中 我知道这不是最好的方法 但我无法弄清楚如何覆盖控制器目录中的文件 我可以找到如何覆盖控制器目录中的文件 谁能告诉