Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert das Open-Source-Axon-Framework

PHP implementiert das Open-Source-Axon-Framework

WBOY
WBOYOriginal
2023-06-18 15:56:161055Durchsuche

Axon Framework ist ein leichtes, in Java geschriebenes CQRS-Framework (Command Query Responsibility Segregation), das Entwicklern hilft, Microservice-Anwendungen schnell zu implementieren. Als PHP-Entwickler fragen Sie sich möglicherweise, wie Sie Axon Framework in PHP verwenden. In diesem Artikel werden Ihnen die Implementierungsdetails des PHP Axon Framework vorgestellt.

Vorteile des Axon Framework

Das Kernkonzept des Axon Framework ist CQRS. Es ermöglicht Entwicklern, Anwendungen in zwei Hauptaspekte zu unterteilen: Befehle und Abfragen. Diese beiden Aspekte werden jeweils in unterschiedlichen Modellen verarbeitet und gespeichert. Dies ermöglicht eine bessere Skalierbarkeit und Leistung. Darüber hinaus bietet Axon Framework auch eine Reihe nützlicher Tools, die es Entwicklern erleichtern, ereignisgesteuerte Anwendungen zu implementieren.

Implementierung der PHP-Version von Axon Framework

Axon Framework ist in JAVA geschrieben, ansonsten können wir es direkt in PHP verwenden. Angesichts der Beliebtheit und Benutzerfreundlichkeit von PHP können wir uns ansehen, wie man ein Axon Framework in PHP implementiert.

  1. Installieren Sie die erforderlichen Pakete

Um das PHP Axon Framework verwenden zu können, müssen wir zunächst PHP installieren.

Axon Framework hängt von vielen Bibliotheken von Drittanbietern ab. Daher müssen wir Composer installieren, damit die für Axon Framework erforderlichen Abhängigkeiten automatisch installiert werden können.

  1. PHP Axon Framework-Anwendung erstellen

Um eine Axon Framework-Anwendung zu erstellen, müssen wir einen Befehlscontroller (Befehlsbus) und einen Abfragecontroller (Abfragebus) erstellen. Hier verwenden wir das Symfony-Framework.

Um Axon Framework nutzen zu können, müssen wir die Axon Bridge-Erweiterung installieren. Um diese Erweiterung zu installieren, verwenden Sie den folgenden Befehl:

$ composer require 1stformations/php-axon-bridge

Jetzt müssen wir einen CLI-Konsolenbefehl für die Anwendung erstellen, um Befehle über den Axon-Befehlsbus auszugeben. Der Befehlsbus ist für die Übermittlung und Verarbeitung von Befehlen verantwortlich.

#!/usr/bin/env php

use SymfonyComponentConsoleApplication;
use SymfonyComponentConsoleInputInputArgument;
use SymfonyComponentConsoleInputInputInterface;
use SymfonyComponentConsoleInputInputOption;
use SymfonyComponentConsoleOutputOutputInterface;
use AxonSerializerSerializer;
use AxonCommandBusSimpleCommandBus;
use AxonFrameworkBridgePhpAxonBridge;

$autoloader = require __DIR__.'/vendor/autoload.php';

$app = new Application('Axon Framework Example', '0.0.1');

$app->register('places:create')
    ->addArgument('name', InputArgument::REQUIRED, 'Place name')
    ->addArgument('latitude', InputArgument::REQUIRED, 'Place latitude')
    ->addArgument('longitude', InputArgument::REQUIRED, 'Place longitude')
    ->setCode(function (InputInterface $input, OutputInterface $output) use ($autoloader) {
        $serializer = new SerializerJmsSerializer();
        $command = new PlaceCreatePlaceCommand(
            PlacesId::generate(),
            $input->getArgument('name'),
            $input->getArgument('latitude'),
            $input->getArgument('longitude')
        );
        $commandBus = new SimpleCommandBus();
        $axon = new PhpAxonBridge($commandBus, $serializer);

        $axon->sendCommand($command);
        
        $output->writeln('Place created');
});

$app->run();

In diesem Beispiel haben wir einen Konsolenbefehl „places:create“ registriert und codiert. Dieser Code verwendet die PHP Axon Bridge, um Place/CreatePlaceCommand-Befehle auf dem Axon-Befehlsbus zu veröffentlichen. Der Befehlscontroller verarbeitet hier Befehle.

Wir können die Abfrage an den Axon-Abfragebus senden und die Antwort empfangen mit:

use AxonQueryBusQueryBus;
use AxonQueryHandlingSimpleQueryBus;

$queryBus = new SimpleQueryBus();
$axon = new PhpAxonBridge($commandBus, $serializer);
$query = new PlacesFindPlaceQuery($id);

$result = $axon->sendQuery(new QueryMessage($query));

Führen Sie die PHP Axon Framework-Anwendung aus.

Jetzt können wir den folgenden Befehl verwenden, um die PHP Axon-Anwendung auszuführen:

$ php example.php places:create --latitude=40.71 --longitude=-74.00 --name='New York City'

Die Konsole gibt eine Ausgabe aus Platzieren Sie die erstellte Nachricht. Der Axon-Befehlsbus erstellt mithilfe unseres Befehlsobjekts eine neue Place-Instanz, die in JSON serialisiert und auf der Festplatte gespeichert wird. Der Abfragecontroller verwendet das „Abfrageobjekt“, um die JSON-Datei abzufragen und die Abfrageantwort zurückzugeben.

Fazit

Dieser Artikel erklärt, wie man Axon Framework in PHP implementiert. Wir haben das Symfony-Framework und die PHP-Axon-Bridge-Erweiterung verwendet. Mit Axon Framework können Sie Ihre Anwendungen für eine bessere Skalierbarkeit und Leistung in kleinere Module aufteilen – und das einfacher als je zuvor. Wenn Sie PHP-Entwickler sind und über die Implementierung einer Microservices-Anwendung nachdenken, sollte Axon Framework Ihre erste Wahl sein.

Das obige ist der detaillierte Inhalt vonPHP implementiert das Open-Source-Axon-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn