为什么magento在wishlist中的模型资源声明中使用deprecatedNode标记

为什么magento在wishlist中的模型资源声明中使用deprecatedNode标记,magento,collections,model,magento-1.7,Magento,Collections,Model,Magento 1.7,我在config.xml的模型配置中看到了一件有趣的事情。我是未知标签 <deprecatedNode> 为什么在MAGENTO中使用这种类型的代码 <resourceModel>wishlist_resource</resourceModel> <wishlist_resource> wishlist\u资源 Mage\u Wishlist\u Model\u资源 wishlist\u mysql4在1.6之后的Magento版

我在config.xml的模型配置中看到了一件有趣的事情。我是未知标签

<deprecatedNode>
为什么在MAGENTO中使用这种类型的代码

<resourceModel>wishlist_resource</resourceModel>
      <wishlist_resource>
wishlist\u资源
Mage\u Wishlist\u Model\u资源
wishlist\u mysql4

在1.6之后的Magento版本中,资源模型取自节点
。 保留
是为了向后兼容仍然使用
节点作为资源模型的旧扩展

从文件中可以看到:
app/code/core/Mage/core/Model/Config.php
第1230行(适用于Magento版本1.7.0):

//首先-检查实体类是否已重写
$className=null;
如果(isset($config->rewrite->$class)){
$className=(字符串)$config->rewrite->$class;
}否则{
/**
*前MMDB扩展的向后兼容性。
*在MMDB发行版中,资源节点被重命名为。剩余的也是
*要保留以前使用的节点的名称,未更新的扩展仍可以使用该名称。
*/
如果($config->deprecatedNode){
$deprecatedNode=$config->deprecatedNode;
$configOld=$this->_xml->global->{$groupType.s'}->$deprecatedNode;
如果(isset($configOld->rewrite->$class)){
$className=(字符串)$configOld->rewrite->$class;
}
}
}
<wishlist>
                <class>Mage_Wishlist_Model</class>
                <resourceModel>wishlist_resource</resourceModel>
            </wishlist>

            <wishlist_resource>

                <class>Mage_Wishlist_Model_Resource</class>
                <deprecatedNode>wishlist_mysql4</deprecatedNode>
                <entities>
                    <wishlist>
                        <table>wishlist</table>
                    </wishlist>
                    <item>
                        <table>wishlist_item</table>
                    </item>
                    <item>
                        <table>wishlist_item</table>
                    </item>
                    <item_option><table>wishlist_item_option</table></item_option>
                </entities>
            </wishlist_resource>
<resourceModel>wishlist_resource</resourceModel>
      <wishlist_resource>
// First - check maybe the entity class was rewritten
    $className = null;
    if (isset($config->rewrite->$class)) {
        $className = (string)$config->rewrite->$class;
    } else {
        /**
         * Backwards compatibility for pre-MMDB extensions.
         * In MMDB release resource nodes <..._mysql4> were renamed to <..._resource>. So <deprecatedNode> is left
         * to keep name of previously used nodes, that still may be used by non-updated extensions.
         */
        if ($config->deprecatedNode) {
            $deprecatedNode = $config->deprecatedNode;
            $configOld = $this->_xml->global->{$groupType.'s'}->$deprecatedNode;
            if (isset($configOld->rewrite->$class)) {
                $className = (string) $configOld->rewrite->$class;
            }
        }
    }