私の会社は、ブラジルのビジネス ルールのニーズに合わせて Magento 用のモジュールを作成しています。
機能を追加するためにコア モデルをオーバーライドする必要がある場合もあれば、一部の機能を変更するためにコア モデルを書き直す必要がある場合もあります。この変更を行うためのベスト プラクティスはどれかは疑問です。たとえば、モジュールが他のモデルによって所有されているいくつかの動作を変更する必要がある場合。
変更したファイルを「local/mycompany/modules...」の下に作成する必要があることはわかっていますが、以下で説明する問題に直面しています。
簡単な例は次のとおりです。Customer モデルは、最後の 3 文字の前に「-」を付けて「99999-999」マスクを使用して郵便番号を追加する必要があります。それは大丈夫です、それは完了し、機能しています。ただし、この郵便番号を使用して計算する必要がある場合は、「-」文字を削除する必要があります。これは、書き換えられた「Shipping/Rate/Request.php」モデルで作成されました。
それが私たちの疑問のポイントです。どれが最高ですか?
「local/mycompany/Shipping/Model/Rate/Request.php」の新しい「Shipping」モジュール内でこれを書き換えますか、それとも「Customer」モジュールのディレクトリ構造内でこれを書き換えますか?
決定する必要がある構造について混乱しています。
重要なことは、個別のモジュールとして書き直したモジュールを配布または販売しないことです。
ここにいくつかのコードを入れます:
郵便番号は、「Customer」モジュールによって受信され、Javascript によってマスクが入力されます。この「顧客」モジュールは、顧客データベースにフィールドを追加します。
ここでは、「Customer」モジュール内の「Shipping/Rate/Request.php」を書き換えます。
"Customers" モジュールの config.xml で:
<shipping>
<rewrite>
<rate_request>Mycompany_Customer_Model_Shipping_Rate_Request</rate_request>
</rewrite>
</shipping>
次に、ファイル「Mycompany/Customer/Model/Shipping/Rate/Request.php」には、郵便番号から「-」文字を削除するコードが含まれています。
私たちの疑問は次のとおりです。場合によっては、「Shipping/Rate/Request.php」をもう一度書き直して、他のメソッドを変更する必要があります。どれが最高ですか?
- すべての書き換えは、元のモジュール内で行われますか? 同じクラスの繰り返しファイルの作成。
- 「Mycompany」名前空間内で Magento のコアと同じディレクトリ構造を使用し、各クラスの 1 つのファイル内で必要なものをすべて変更しますか? Magentoのコアのような?
必要なことを説明できるかどうかわかりません。
ありがとう!