0

なぜどこでリソースを使用するのか、私にはよくわかりません。

このコマンド(findとgrep)を実行し、Resourceフォルダー内のファイルを取得します。

find . -type f | grep -P '/Resource/'

基本的にカタログの使用

app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4

どうしてですか?

app/code/core/Mage/Catalog/Model/Mysql4

しばらくすると、EAVを使用していると思いましたが、そうではありません。これは、お客様がEAVを使用しており、このような階層がないためです。

みんな、ありがとう。

4

2 に答える 2

2

Magento の「古いタイマー」の 1 人は、おそらく変更の背後にある理由について、もう少し背景を説明できます。Magento コア チームは、複数のデータベース バックエンドをサポートするために、Magento 1.6 で MMDB を導入しました。変更の 1 つは、リソース モデルに関するリファクタリングに関係しており、リソース モデルに "Mysql4" という名前を付けることは、1 種類のデータベースしかサポートしていない場合、あまり意味がありません。RDBMS ガイドのイントロダクションには、この変更の背景がもう少し詳しく説明されています。

したがって、短い答えは、「Mysql4」は古い学校であり、「リソース」は新しいホットネスですが、どちらもほとんど同じ目的を果たします. 多くのコア モジュールが両方のスタイルのリソース モデルを持っていることがわかります。Mysql4バージョンは互換性のためのものですが、Resource機能を追加せずに同等のものを拡張するだけです。

于 2012-11-15T22:16:57.790 に答える
0

モジュールは、config.xml で設定されたフォルダーを使用します。

<global>
    <models>
        <catalog_resource>
            <class>Mage_Catalog_Model_Resource</class>
            ...
        </catalog_resource>
    </models>
</global>
于 2012-11-15T21:51:07.527 に答える