2012-04-04 13 views
4

コアキャッシュモデルを書き直す必要があります。そして、これは動作しません。この問題を解決するための私の最初の試みは他のモデルとの書き換えを試してみました...私のconfig.xmlで は、私は次のマゼンタコアキャッシュモデル(Mage_Core_Model_Cache)を書き換える方法

<global>   
    <models>   
    <core> 
     <rewrite> 
     <**layout**>MyCompany_MyModule_Model_Core_Cache</**layout**> 
     </rewrite> 
    </core> 
    </models> 
    .... 

を宣言し、私の​​クラスで私がconsturctorで死亡しました。

これは完全に機能します。 私はモデルを書き直すのが正しいかもしれません。

しかし、xmlでlayout-nodeを使用せず、代わりにcache-nodeを使用すると、これは機能しません。

<global>   
    <models>   
    <core> 
     <rewrite> 
     <cache>MyCompany_MyModule_Model_Core_Cache</cache> 
     </rewrite> 
    </core> 
    </models> 
    .... 

私の質問は今:

は、だから私の試みは、以下の、これが動作していないで書き換えるための方法がある/「キャッシュ・コア・モデルを」オーバーロード?

+1

に完璧な作品:)は明らかですキャッシュ? – Nasaralla

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええんばんだんだんだんばかりせずばか、バーチャルセッションバーやキャッシュノードをレイアウトノードに変更した場合、すぐに動作します:(レイアウトモデル用) –

+0

なぜこれがうまくいかないのか? –

答えて

2

私も同じことをしようとしていますが、それは可能ではないと思います。もしあなたが$ this-> _ xml-> group-> modelsをメソッド:getGroupedClassName(app/code/core/Mage/Core/Model/Config.php)からvar_dumpするならば、それはまだ書き換えられていないことに気付くでしょう。なぜそれはスキップされます。

翻訳またはレイアウト:your_class_modelを上書きしようとすると、$ this - > _ xml ...が最初のコアクラスを書き換えずにダンプすることに気付くでしょう。コア/キャッシュしたがって、おそらくオーバーライドされていますが、クラスはすでにインスタンス化され、設定され、使用されています。実際には何も発射しません。

したがって、私はコア/キャッシュをオーバーライドすることはできないと思います。 app/code/localに移動する必要があります。ピチ

+0

あなたの答えをありがとう...はいこれも私が作った "解決策"です...しかし、それは私の目でコアファイルをローカルにコピーするのは良い方法ではありません。しかし、これは明らかに唯一の方法です。本当の哀れみ。 –

4

キャッシュは、モジュール構成(config.xml)がロードされる前に初期化されます。 cache-Modelは、レジストリにモデル名をキャッシュするMage :: getModelでインスタンス化されました。 後ですべてのカスタムキャッシュモデルを取得しようとしても失敗します。

解決策:このrewrite文をetc/local.xmlに入れてください。 local.xmlはモジュールに依存しないものしか保持しないので、これはちょっと汚いです。しかし、これはコアファイルをローカルにコピーするよりも優れています。

+0

あなたは、少し汚れていると言っていますので、別の解決方法がありますか? – Yaroslav

3

(このファイルはキャッシュされません)私は、同じ質問があったが、私の解決策は、Magentoのは/app/etc/*.xmlからXMLファイルをロードします

;-)あなたには少し異なっています他のすべての前に、マゼンタで。 だから私は「cache.xml」ここに自分のファイルを作成し、コンテンツが

<?xml version="1.0"?> 
<config> 
    <global> 
     <models>   
      <core> 
       <rewrite> 
        <cache>MyCompany_MyModule_Model_Core_Cache</cache> 
       </rewrite> 
      </core> 
     </models> 
    </global> 
</config> 

私には正常に見える...キャッシュの問題かもしれ1.6,1.7および1.8

+0

ありがとう!しばらく私を救った! –

+0

これは私に '致命的なエラー:/ var/www/magento-20161207-1/mage-webroot/app/code/core/Mage/Core/Model/App内の非オブジェクトのメンバー関数callRequest()を呼び出します。 1.9.2.4の.php on line 351'を参照してください。 – Goose

関連する問題