Suchergebnisse :

×

Was ist Plugin Magento 2 oder was ist Interceptor in Magento 2?

Magento 2 ist eine leistungsstarke und flexible E-Commerce-Plattform, die Entwicklern zahlreiche Anpassungsmöglichkeiten bietet. Eines der Hauptmerkmale, die diese Flexibilität ermöglichen, ist die Verwendung von Plugins, auch Interceptoren genannt, die es Entwicklern ermöglichen, das Verhalten von Kernklassen zu ändern, ohne ihren ursprünglichen Code zu ändern.

    Was ist ein Plugin?

    In Magento 2 ist ein Plugin eine Klasse, die die Ausführung einer öffentlichen Methode in einer anderen Klasse abfängt, sodass Entwickler ihre Funktionalität ändern oder erweitern können. Plugins funktionieren, indem sie Methoden vor, nach oder um sie herum definieren, die zusammen mit der ursprünglichen Methode ausgeführt werden. Vorher-Plugins werden vor der ursprünglichen Methode ausgeführt und können verwendet werden, um die Eingabeparameter zu ändern oder die Ausführung der ursprünglichen Methode insgesamt zu verhindern. After-Plugins werden nach der ursprünglichen Methode ausgeführt und können verwendet werden, um die Ausgabe zu ändern oder basierend auf dem Ergebnis zusätzliche Aktionen auszuführen. Around-Plugins umschließen die ursprüngliche Methode und können verwendet werden, um sowohl die Eingabe- als auch die Ausgabeparameter zu ändern oder zusätzliche Aktionen vor und nach der Ausführung der Methode auszuführen.

    Wie erstelle ich ein Plugin in Magento 2?

    Um ein Plugin in Magento 2 zu erstellen, müssen Sie die folgenden Schritte ausführen:

    • Erstellen Sie eine neue PHP-Klasse, die die Klasse Magento\Framework\Interception\AbstractInterceptor erweitert.
    • Implementieren Sie die Methode intercept(), die den Code enthält, der beim Aufruf des Plugins ausgeführt wird.
    • Definieren Sie die Konfiguration des Plugins in der Datei di.xml, die sich im Verzeichnis etc des Moduls befindet.
    • Registrieren Sie das Plugin, indem Sie der Datei di.xml eine Plugin-Deklaration hinzufügen.
    • Angenommen, Sie möchten dem Kundenregistrierungsprozess eine zusätzliche Validierung hinzufügen. In diesem Fall können Sie ein Plugin erstellen, das die Methode createAccount() der Magento\Customer\Model\AccountManagement-Klasse abfängt und die erforderliche Validierungslogik hinzufügt. Hier ist eine Beispielimplementierung:


      Namespace Vendor\Module\Plugin; verwenden Sie Magento\Framework\Interception\AbstractInterceptor; verwenden Sie Magento\Framework\Interception\InterceptorInterface; verwenden Sie Magento\Framework\App\RequestInterface; verwenden Sie Magento\Framework\App\ResponseInterface; Klasse CustomerAccountManagementPlugin erweitert AbstractInterceptor implementiert InterceptorInterface { öffentliche Funktion intercept (\Magento\Customer\Model\AccountManagement $subject, \Closure $proceed, RequestInterface $request, ResponseInterface $response) { // Benutzerdefinierte Validierungslogik hier hinzufügen, wenn (!$request-> getParam('agree_to_terms')) { throw new \Exception(__('Bitte stimmen Sie den Allgemeinen Geschäftsbedingungen zu.')); } // Originalmethode aufrufen $result = $proceed($request, $response); // Hier benutzerdefinierte Nachbearbeitungslogik hinzufügen if ($result->getCustomerId()) { // Hier etwas tun } return $result; } }
      
        

      In diesem Beispiel fügt die Methode intercept() zunächst eine benutzerdefinierte Validierungslogik zur Registrierungsanforderung hinzu und ruft dann die ursprüngliche Methode createAccount() mithilfe des Parameters $proceed auf. Nachdem die ursprüngliche Methode ausgeführt wurde, fügt die Methode intercept() basierend auf dem Ergebnis zusätzliche Nachverarbeitungslogik hinzu.

      Um das Plugin zu registrieren, müssen Sie der Datei di.xml eine Plugin-Deklaration hinzufügen, die sich im etc-Verzeichnis des Moduls befinden sollte. Hier ist ein Beispiel für die Registrierung des oben genannten Plugins:


      
      
      
      
      

      In diesem Beispiel gibt die Plugin-Deklaration den Namen des Plugins, die Klasse, die das Plugin implementiert, und die Reihenfolge an, in der das Plugin im Vergleich zu anderen Plugins ausgeführt werden soll. Das sortOrder-Attribut ist optional, kann aber verwendet werden, um die Reihenfolge zu steuern, in der mehrere Plugins ausgeführt werden.



    Warum Plugins in Magento 2 verwenden?

    Plugins bieten Entwicklern, die mit Magento 2 arbeiten, mehrere Vorteile:


    • Flexibilität: Mit Plugins können Entwickler das Verhalten von Kernklassen ändern, ohne ihren ursprünglichen Code zu ändern, wodurch es einfacher wird, das Verhalten von Magento 2 an spezifische Geschäftsanforderungen anzupassen.
    • Modularität: Plugins können problemlos zum System hinzugefügt oder daraus entfernt werden, sodass Entwickler mit verschiedenen Funktionen und Konfigurationen experimentieren können.
    • Interoperabilität: Plugins funktionieren mit jeder Klasse, die die Schnittstelle Magento\Framework\Interception\InterceptorInterface implementiert, wodurch die nahtlose Integration von Modulen von Drittanbietern möglich ist.
    • Testbarkeit: Da Plugins die Ausführung von vorhandenem Code abfangen, können sie problemlos isoliert getestet werden, um sicherzustellen, dass sie ordnungsgemäß funktionieren, bevor sie in einer Produktionsumgebung bereitgestellt werden.

    Zusammenfassung

    Plugins, auch Interceptoren genannt, sind eine leistungsstarke Funktion von Magento 2, die es Entwicklern ermöglicht, das Verhalten von Kernklassen zu ändern, ohne ihren ursprünglichen Code zu ändern. Durch das Abfangen der Ausführung einer Methode und das Hinzufügen zusätzlicher Funktionalität können Entwickler Anpassungen und Integrationen erstellen, die sonst nur schwer oder gar nicht zu erreichen wären. Wenn Sie mit Magento 2 arbeiten, sind Plugins ein wesentliches Werkzeug in Ihrem Entwicklungs-Toolkit. Wenn Sie deren Verwendung beherrschen, können Sie flexiblen, modularen und interoperablen Code erstellen, der Ihren Geschäftsanforderungen entspricht.

    Über 1000 Organisationen, die uns vertrauen



    Kontakt


     Danke für Ihre Antwort. Wir werden uns bald bei Ihnen melden.

    Etwas ist schief gelaufen. Bitte senden Sie Ihre Anfrage erneut

Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Support
Kontaktieren Sie den miniOrange-Support
Erfolg

Vielen Dank für Ihre Anfrage.

Wenn Sie innerhalb von 24 Stunden nichts von uns hören, können Sie gerne eine Folge-E-Mail an senden info@xecurify.com