Magento核心模块重写类名


Magento core module rewrite class name

我试图重新声明一个核心模块模型类(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,并在其中声明了一个类:类First_Module_Model_Product扩展Mage_Catalog_Model_Product.

链接到目录结构的图像: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>