Ist es für eine Block-Klasse angemessen, Daten über eine Funktion in einer ResourceModel-Klasse abzurufen, anstatt über eine Model-Klasse?
Oder sollte der Block das Modell aufrufen, das den Aufruf dann an das ResourceModel weiterleitet?
Der direkte Wechsel von Block zu ResourceModel ist am einfachsten und vermeidet das Duplizieren möglicher Funktionen. Würden Sie es jedoch als schlechte Form betrachten und Best-Practice-Muster brechen?
Mage::getResourceModel('log/visitor')->getStartOfLog()
einem Block? Würde das nicht die (Domänen-) Modellschicht umgehen?Theoretisch denke ich, dass es eine schlechte Form ist, weil jemand die Ressourcenmodellklasse hätte ändern können (sehr unwahrscheinlich). Aber es kommt darauf an. Ein praktisches Beispiel sind die Kategorie- und Produktressourcenmodelle (und Ressourcensammlungen). Wenn Sie sie direkt instanziieren, erhalten Sie möglicherweise nicht das entsprechende Modell (flach oder normal). Ich denke, das ist der einzige Fall, in dem es tatsächlich darauf ankommt.
quelle