Magentoアーキテクチャ - ヘルパーを使用してすべてのデータと変数を処理する

magento.stackexchange https://magento.stackexchange.com/questions/823

質問

ヘルパーをセットアップし、これによりすべての定数、変数、データを処理できるようにすることは、良い/悪いアーキテクチャと考えられていますか?

私は現在、メンバー/非メンバーのログインに関係するかなり簡単な拡張機能を書いています - ほとんどがフロントエンドのものです。 「覚えておいてください」は、特定の場合にチェックされ、特定の場合にログインボックスを開くなど、このために非常に広範囲にCookieを使用し、管理者を介した非常に最小限の構成オプションを備えた実際のデータベースアクセスを使用しません。

役に立ちましたか?

解決

「定数、変数、データ」、それらは「モデル」のように聞こえます。

一般的に、答えはあなたが解決しようとしている特定の問題に本当に依存するでしょう。しかし、データベースを使用する必要がない場合でも、これらのタイプのものをモデルにカプセル化する傾向があります。

次に、モデルは、データの持続性だけでなく、ドメイン(ドメインはビジネス/アプリケーションロジックを意味する)を表すことを忘れないでください。これは混乱を招く可能性があります。最近は「モデル」を見て、すぐにデータベースを考えています。

このルールの例外は、ブロックまたはテンプレートから動作にアクセスする必要がある場合です。ヘルパーを使用するのは非常に便利です:

$this->helper('foomodule')->formatRefererenceNumber($myModel->getReferenceNumber())

これは、代替案よりもはるかに快適です(そして計算上効率的)

Mage::getModel('foomodule/model')->formatReferenceNumber($myModel->getReferenceNumber()

もちろん、$ mymodelのメソッドであるだけではないと思うかもしれません。そして、おそらく、はい。しかし、ヘルパーにそれを使用すると、参照番号をそのストレージからフォーマットするという懸念を分離できます。モデルを計量することなく、代替のフォーマットオプション(おそらく異なるヘルパー全体で)を簡単に指定できます。

モデルを介してヘルパーを使用したいのは、テンプレートで多くのPHPコードを書いていることに気付いた場合です。行のテーブルがあり、奇妙な列を1色にし、別の列にさえしたいとしましょう。そのような機能をヘルパーに抽出します。

一般的に私が従うヒューリスティックは、モデルのビジネスデータとロジックを保持し、ヘルパーを使用してフロントエンドでのプレゼンテーションのためにデータを特定のフォームに変換することです。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top