【问题标题】:Magento - Adding Files to Local/Mage has no EffectMagento - 将文件添加到本地/法师没有效果
【发布时间】:2010-07-27 11:48:53
【问题描述】:

我想对一些 Magento 核心文件进行更改。为了确保这些更改是未来的证明,我将文件从 code/core/Mage 复制到 code/local/Mage。

我保持文件结构和文件名一致。问题是当我这样做时,更改没有效果(我已经刷新了缓存)

任何想法我哪里出错了?如果我直接编辑核心文件,就会发生更改。

【问题讨论】:

  • 本地文件夹用于自定义模块。对于核心更改,您需要直接在 code/core/Mage 中进行编辑。
  • 这不是推荐的方式。
  • Rito说的不是真的,你可以在本地编辑。
  • 好吧,我一个小时前在 magento 1.4 上自己测试过,a1anm 尝试的方式不起作用。正如 Janus 写的那样,一个新模块是一个很好的解决方案。
  • 根据我的经验,对于 Block(和 Model?)使用 local/Mage 是可以的。只要您需要覆盖 MVC 的另一部分,就必须使用自定义模块。

标签: magento


【解决方案1】:

您应该创建一个新的本地模块并在 config.xml 文件中定义重写:

创建app/code/local/MyCompany/MyModule 目录。添加子文件夹etcmodel

现在创建 etc/config.xml 文件,其中包含:

<?xml version="1.0" encoding="utf-8?>
<config>
    <modules>
        <MyCompany_MyModule>
            <version>0.1.0</version>
        </MyCompany_MyModule>
    </modules>

    <global>
         <models> <!-- type of class to rewrite -->
            <catalog> <!-- base module to rewrite -->
                <rewrite>
                    <product>MyCompany_MyModule_Model_Product</product>
                </rewrite>
            </catalog>
        </models>
    </global>
</config>

使用您的更改实现model/Product.php。最简单的方法是继承基类,重写方法。

还记得在 app/etc/modules 中激活你的模块。

【讨论】:

    【解决方案2】:

    上面的海报是正确的,因为编辑核心功能的首选方法是使用重写。但是,在某些情况下,这是不可能的,在这种情况下,您应该能够将核心文件放入 /app/code/local/Mage 目录以使它们工作。块和模型文件应该以这种方式立即工作,如果我没记错的话,控制器也应该如此。其他文件(如配置文件)可能不是自动的。

    您能否发布未按预期响应的特定文件的详细信息?调试细节比调试概括更容易。此外,除了刷新正常缓存之外,请确保您已关闭已安装在服务器上的所有操作码缓存。

    谢谢, 乔

    【讨论】:

    • 使用配置文件,您只需将覆盖逐字逐句放在模块 config.xml 或 local.xml 中。
    • 您不能覆盖未实例化 Mage 类的类。所以,像 Mage_Model_Catalog_Product_Abstract 这样的东西不能用这种方式完成。基本上,它不适用于继承,因为这里使用的是“普通”类名。
    • 我试图编辑的文件是:app > code > core > Mage > Customer > etc > config.xml 我尝试将它复制到:app > code > local > Mage > Customer > etc > config.xml
    【解决方案3】:

    您可以使用local.xml 轻松覆盖xml 设置。因此,如果您想覆盖/添加到 app/code/core/Mage/Customer/etc/config.xml,只需将其添加到 app/etc/local.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 2016-03-24
      • 2011-12-20
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多