Frage

ist das Interception, um das bevorzugte Verfahren zu sein, um das Verhalten des Verhaltens einer Originalmethode in Magento2 als Beobachter in Magento1 zu ändern? generasacodicetagpre.

War es hilfreich?

Lösung

Ich denke nicht, dass das Interception Eventbeobachter ersetzen soll.
Im Magento2-Code gibt es noch Ereignisse.

Die Interceptoren sind nur ein Weg, um den Eingang oder die Ausgabe eines Verfahrens zu verarbeiten.
Oder das Verhalten einer Methode (mit dem generationspflichtigen Code-Interceptor), aber von dem, was ich verstehe, ist ein riskanter Ansatz.

Ich denke, es ist eher, um die Klasse so viel wie möglich zu vermeiden.
In Magento 1.x, wenn Sie das Ergebnis einer Methode ändern müssten, die Sie zur Überschreibung der Klasse, die und die Methode selbst eingestellt haben mussten.
Jetzt können Sie einfach generakodicetagcode, around oder before-Interceptoren verwenden, um die Daten zu manipulieren.

Mit Beobachtern können Sie Daten in bestimmten festen Punkten eines Verfahrens, nicht die vollständige Methode selbst, manipulieren.

Meiner Meinung nach ist die Verwendung von Beobachtern, wenn möglich, immer noch der beste Ansatz für das Customizing auch in Magento 2.

Andere Tipps

Interception ist Evolution der Ereignisse.Ihr Ziel ist es, einen Entwickler zu ermöglichen, seinen Code zu schreiben, ohne an Erweiterungspunkte nachzudenken.

Mit Ereignissen müssen Sie über Orte nachdenken, an denen Sie Mage :: dispatchevent () tun, damit Ihr Modul anpassbar ist.

Beim Abfangen können Sie nicht darüber nachdenken.Sie schreiben einfach Ihre Geschäftslogik.Jede Methodenanruf ist ein Ereignis.Wenn Sie also Ihren Code auf ordnungsgemäße objektorientierte Weise schreiben, ist es vollständig anpassbar von Design.

Aber Ereignisse bieten ein höheres Niveau-Service, der Schnittstelle bereitstellt, die die Geschäftssprache spricht.Ereignisse bleiben also in Magento 2.

Derzeit gibt es noch die Möglichkeit, bestimmte Ereignisse zu hören, und ich würde vorschlagen, dass die Interceptoren nur ein Ersatz für Umschreibungen sind.Ich würde immer noch die Ereignisse verwenden, wenn es für Ihre Bedürfnisse eins gibt.

Wenn Sie sich die aktuelle Freigabe ansehen, verfügen einige der Module generasAndicetagcode-Dateien, die die Definitionen enthalten. generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top