Magento 核心模块重写 class 名称

Magento core module rewrite class name

我试图重新声明一个核心模块模型class(Mage_Catalog_Model_Product)。 我创建了一个测试模块并将其命名为 First_Module 我还在其中创建了一个 config.xml 文件:

<?xml version="1.0"?>
<config>
   <default>
       <models>
           <catalog>
               <rewrite>
                   <product>First_Module_Model_Product</product>
               </rewrite>
           </catalog>
        </models>
   </default>
</config>

然后我创建了 app/code/local/First/Module/Model/Product.php 并在其中声明了一个 class: class First_Module_Model_Product 扩展 Mage_Catalog_Model_Product.

Link 目录结构图:http://i58.tinypic.com/abqetz.png

我还在 app/etc/modules 中创建了 First_Module.xml 文件:

<?xml version="1.0"?>
<config>
    <modules>
        <First_Module>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Catalog/> 
            </depends>
        </First_Module>
    </modules>
</config>

然后我尝试 运行 测试但它不起作用:

Zend_Debug::dump( Mage::getStoreConfig('global/models/catalog') ) -> 
array(1) {
  ["rewrite"] => array(1) {
    ["product"] => string(26) "First_Module_Model_Product"
  }
}

$model = Mage::getModel('catalog/product');
Zend_Debug::dump(get_class($model)); // prints Mage_Catalog_Model_Product, but I wont to see First_Module_Model_Product.

我哪里错了?

<global> 标签而不是 <default> 标签中添加您的模型重写信息

 <global>
   <models>
       <catalog>
           <rewrite>
               <product>First_Module_Model_Product</product>
           </rewrite>
       </catalog>
    </models>
</global>