Magentoの更新後もコアファイルへの変更を変更する
-
29-09-2020 - |
質問
最近Magento Coreファイルを変更しましたが、これらの変更はマゼントCE 1.9.2.4のバージョン1.9.2.3からマイナスアップデートの更新後に上書きされました。今私はそれらの変更を再度やらなければなりません。これらは私の店の必須の変更であり、ルピー(インド通貨)のシンボルをマゼントの請求書に現れる必要があります。デフォルトのフォントはシンボルをサポートしません。コアファイルに永続的な状態に保つように変更するにはどうすればよいですか?
解決
コアファイル(上書きする)を単にコピーしてapp/code/local/Mage
に貼り付けて、そのPHPファイルの同じパスを維持できます。その後、このファイルの編集を開始することができます、Magentoはコアファイルの代わりにファイルを読みます。
以下は例です。
=> app/code/core/Mage/Catalog/Block/Product.php
をオーバーライドしたい場合は、Product.php
にapp/code/local/Mage/Catalog/Block/Product.php
を付けるために必要です。これだけを行うと、Magentoにコアフォルダの代わりにローカルフォルダからこのファイルを読んでください。
ローカルフォルダからコアフォルダへの読み取りの動作の理由は次のとおりです。
このプロセスはMagento Core機能をオーバーライドすると呼ばれ、MagentoがApp / Code / Local / Local / app/code/community/
を最初に見て、ついにapp/code/core/
でPHPをセットするという事実に基づいています。これには、ローカルまたはコミュニティ名スペースの下に置かれた同じ名前のファイルがロード中に優先されます。したがって、この方法でほぼすべてのコアファイルを上書きすることができます。
上記のアプローチのデメリット:
-
1つのことは、完全なコアファイルを上書きし、すべてのクラス関数をコピーする必要があります。オーバーライドされたファイルが配置されたら、Magentoコアファイルの代わりにファイルが常に使用されます。ほとんどのコアクラスに多数のメソッドが数倍になることを考えると、それは私たちのファイルのすべてのメソッドを効果的に上書きしていることを意味します。
-
このアプローチは、上記の理由から、マゼントアップグレードはフレンドリーではありません。
-
コントローラでは機能しません。
このアプローチはあなたのテスト/あなたのモジュールの開発中にのみ役立ちます。モジュール全体を書き込む代わりに、コアクラスをすばやく上書きすることができます。
他のヒント
Magentoコアファイルを変更しないようにして、ローカルプール自体で上書きするようにしてください。そのようにして、アップグレードが行われたとき、変更は失われません。