2

私の質問はmodel、ディレクトリのツリー内での正しい使用とコードの配置についてです。私はたくさん読んでいますが、結論を出すことができません。これが私がチェックしたリンクのいくつかです:

次のようなリソースとコレクションを備えたテーブルとそれに対応するモデルがいくつかあります。

magento
.
.
Model
  ├───Resource 
  │      ├─ first_model
  │      │           └─ collection.php
  │      ├─ second_model
  │      │           └─ collection.php
  │      ├─ first_model.php
  │      └─ second_model.php
  ├─ first_model.php
  └─ second_model.php

だから、私の質問:私は自分のメソッドをどこに書かなければならないのか知りたいです。Modelフォルダーにあるphpファイル、Resourceフォルダー内のphpファイル、またはcollection.phpファイルのphpファイル?パターンを見つけるためにインストールしたさまざまなプラグインを調べていますが、何をどこに配置するかが正確にわかりません。たぶん些細なことで、いくつかのパターンに従っていますが、グーグルでそれを発見したり見つけたりすることはできません。

4

1 に答える 1

1

この問題についてはいくつかの意見があるかもしれませんが、私のものが正しいかどうかはわかりません。しかし、現時点ではまだ誰も答えていないので、そのような意見でさえ誰よりも優れていると思います。

したがって、ほとんどのモデルには3つのモデルクラスがあります。たとえば、ブログの拡張機能があり、モデルの記事について話しているとしましょう。

  1. コレクション(クラスYaroslav_Blog_Model_Resource_Article_Collection)最も簡単に説明できます。複数の記事で機能するはずのすべてのメソッド、特にSQLテーブルのデータをここに配置する必要があります。例:日付で記事を並べ替える方法、または著者などで記事をフィルタリングする他の方法。

  2. リソースモデル(クラスYaroslav_Blog_Model_Resource_Article)このモデルは、単一の記事のSQLデータで機能します。たとえば、記事のURLキーが一意であることを確認する方法などです。SQLレベルのデータで機能するものなら何でも。

  3. メインモデル(クラスYaroslav_Blog_Model_Article)。簡単に言うと、他のすべてをここに配置します。このモデルは抽象化の最上位層であり、その義務はビジネスロジックです。記事を含むRSSフィードを生成するメソッドを作成しましたか?その場所はここにあります(またはおそらくコントローラー内にあります)。この記事の読者のある種のログを書く方法は?ここでも。

つまり、簡単に言うと、SQLクエリを直接操作している場合を除いて、メソッドをメインモデルに配置します。私はそれが理にかなっていることを願っています。

于 2012-10-03T18:34:09.220 に答える