Sollte ich immer von Mage_Core_Helper_Abstract erben?

7

Ich habe Konflikte über das Wetter gehört oder nicht, von denen man nur erben sollte Mage_Core_Helper_Abstract, selbst wenn keiner der eingebauten Helfer verwendet wird.

Wenn ich also ein paar Helferklassen habe Mage::helper(), die ich mit der Magento- API bekomme , aber diese Helfer nichts von verwenden Mage_Core_Helper_Abstract, sollte ich trotzdem davon erben?

Meine Tendenz geht mit Ja für bewährte Verfahren einher, aber möglicherweise handelt es sich um Leistungs- / Ressourcenverschwendung, die mir nicht bekannt ist.

Gedanken?

BEARBEITEN: Ich habe Beispiele im Magento-Code von Helfern gesehen, die von Helfer Abstract erben, ohne dessen Funktionen zu verwenden ( http://freegento.com/doc/d3/d82/_helper_2_string_8php-source.html ). Wenn mir nicht jemand einen guten Grund gibt, warum ich es nicht tun sollte, denke ich, dass ich mit "immer von Helfer Abstract erben" fortfahren werde.

Ronen Ness
quelle

Antworten:

14

Magento verlässt sich auf den dataHelfer in einem Modul für viele 'automatische' Übersetzungsaufgaben wie die Beschriftungen in der system.xml.

Diese Übersetzungsfunktion ist erst nach der Erweiterung verfügbar Mage_Core_Helper_Abstract.

Ich würde also sagen, dass dies nicht erforderlich ist, aber es ist eine gute Vorgehensweise, um Probleme in der Zukunft zu vermeiden, wenn Sie sich auf Übersetzungen in Ihrem Modul verlassen

Sander Mangel
quelle
Ich denke auch, aber ich hörte einen erfahrenen Magento-Entwickler sagen, er solle nicht unnötig davon erben (leider ohne zu erklären, warum), und ich wunderte mich darüber. Du hast meine natürliche Tendenz verstärkt, also werde ich deinen Weg gehen. Um es klar zu machen: Ich spreche nicht über den Standard-Datenhelfer, sondern über angepasste zufällige Helfer, die ich für meine Module erstelle. Wenn das irgendwie deine Antwort ändert, lass es mich wissen :)
Ronen Ness
Für andere Helfer neben dem Datenhelfer sehe ich keinen Grund, vom abstrakten Helfer zu erben
Fabian Schmengler
Aber sehen Sie einen Grund, dies nicht zu tun? das ist die Frage .. :)
Ronen Ness
Ja, das ist unnötig. Warum sollten Sie Code hinzufügen, den Sie nicht verwenden? Und ein praktischer Grund: IDE-Autovervollständigung. Sie möchten dort nur die relevanten Methoden sehen.
Fabian Schmengler
hm ich glaube ich stimme @fschmengler hier zu. Mit Ausnahme von Daten möchten Sie die abstrakte Klasse wahrscheinlich nicht erweitern. Es sei denn, es gibt einen expliziten Grund dafür
Sander Mangel