Php magento中的模块覆盖问题
大家好,谢谢阅读, 我正在使用magento和扩展插件 核心/存储 使用模型 插件/存储 模型。现在是扩展这个插件和更新模块函数的时候了,所以我想覆盖它 插件/存储 模型由我的自定义模型 海关/商店 因此,现在告诉我们,总体视图应如下所示结束: 核心/存储----被---->Plugin/Store----覆盖 --->海关/商店 但是如果我调用Php magento中的模块覆盖问题,php,magento,magento-1.7,overriding,magento-1.8,Php,Magento,Magento 1.7,Overriding,Magento 1.8,大家好,谢谢阅读, 我正在使用magento和扩展插件 核心/存储 使用模型 插件/存储 模型。现在是扩展这个插件和更新模块函数的时候了,所以我想覆盖它 插件/存储 模型由我的自定义模型 海关/商店 因此,现在告诉我们,总体视图应如下所示结束: 核心/存储----被---->Plugin/Store----覆盖 --->海关/商店 但是如果我调用Mage::getModel('Core/Store'),我得到 插件/存储 模型。这是因为magento正在读取核心模块配置,它发现核心/存储模型被P
Mage::getModel('Core/Store')代码>,我得到
插件/存储
模型。这是因为magento正在读取核心模块配置,它发现核心/存储模型被Plugin/Store覆盖,而没有检查Plugin/Store是否被任何其他模型覆盖(在我的例子中是Custom/Store)。
这意味着所有的Mage::getModel('Core/Store')代码>在所有磁电机中,代码不会返回
海关/商店
实例,将不使用新开发的功能。
我说的是对的还是有办法让它发挥作用
PS:在我的情况下,即使在通过自定义/存储覆盖插件/存储之后:
1-调用Mage::app()
将返回一个对象has\u stores数组和
其中的所有商店都是插件/商店实例
3-调用Mage::getModel('Core/Store')代码>将返回插件/存储
实例
模块之间的依赖关系
1) 扩展Magento核心模块时,需要配置模块之间的依赖关系
e、 g.app/etc/modules/MyNamespace\u Customer.xml:
<MyNamespace_Customer>
<active>true</active>
<codePool>local</codePool>
<priority>1</priority>
<depends>
<Mage_Customer/>
</depends>
</MyNamespace_Customer>
e、 g.依赖项配置
(销售报价实体已更改,需要添加与“销售”模块的依赖项):
真的
地方的
1.
3) 从Magento core模块扩展/重写文件(模型、助手、块、控制器)
需要模块之间的依赖关系,否则最后更改的版本将是任意的,您将无法控制重写
模块依赖关系对于排序SQL
语句的优先级很重要,在新安装时,它们将避免冲突、崩溃或错误的最终数据
基于以上内容,您可以定义模块之间的依赖关系Plugin/Store
和Custom/Store
谢谢您提供的信息性回答,但我添加了新自定义模块和插件模块之间的依赖关系(例如,自定义模块配置中的
)它应该是这样的Plugin/Store
依赖于Core/Store
和Custom/Store
依赖于Plugin/Store
这正是现在的情况,但仍然和我在问题中解释的一样。在安装模块时,你必须确保它们彼此兼容。有时,您必须根据需要进行修改。
<MyNamespace_Customer>
<active>true</active>
<codePool>local</codePool>
<priority>1</priority>
<depends>
<Mage_Customer/>
</depends>
</MyNamespace_Customer>
$installer = $this;
$installer->startSetup();
$sqlQuote = 'ALTER TABLE ' . $this->getTable('sales_flat_quote') .
' ADD `is_urgent` TINYINT UNSIGNED NOT NULL DEFAULT 0';
$installer->run($sqlOrder);
$installer->run($sqlQuote);
$installer->endSetup();
<MyNamespace_MyCustomModule>
<active>true</active>
<codePool>local</codePool>
<priority>1</priority>
<depends>
<Mage_Sales/>
</depends>
</MyNamespace_MyCustomModule>