Maison  >  Article  >  développement back-end  >  PHP implémente le framework open source Axon

PHP implémente le framework open source Axon

WBOY
WBOYoriginal
2023-06-18 15:56:161054parcourir

Axon Framework est un framework CQRS (Command Query Responsibility Segregation) léger écrit en Java, qui aide les développeurs à implémenter rapidement des applications de microservices. En tant que développeur PHP, vous vous demandez peut-être comment utiliser Axon Framework en PHP. Cet article vous présentera les détails d’implémentation de PHP Axon Framework.

Avantages d'Axon Framework

Le concept de base d'Axon Framework est CQRS. Il permet aux développeurs de diviser les applications en deux aspects principaux : les commandes et les requêtes. Ces deux aspects sont traités et stockés respectivement dans des modèles différents. Cela permet une meilleure évolutivité et de meilleures performances. De plus, Axon Framework fournit également un ensemble d'outils utiles qui permettent aux développeurs de mettre en œuvre plus facilement des applications basées sur des événements.

Implémentation de la version PHP d'Axon Framework

Axon Framework est écrit en JAVA, sinon on peut l'utiliser directement en PHP. Compte tenu de la popularité et de la facilité d’utilisation de PHP, nous pouvons examiner comment implémenter un framework Axon en PHP.

  1. Installez les packages nécessaires

Pour utiliser PHP Axon Framework, nous devons d'abord installer PHP.

Axon Framework dépend de nombreuses bibliothèques tierces, nous devons donc installer Composer pour que les dépendances requises par Axon Framework puissent être installées automatiquement.

  1. Création d'une application PHP Axon Framework

Pour créer une application Axon Framework, nous devons créer un contrôleur de commandes (bus de commandes) et une requête contrôleur (bus de requête). Ici, nous utiliserons le framework Symfony.

Pour utiliser Axon Framework, nous devons installer l'extension Axon bridge. Pour installer cette extension, utilisez la commande suivante :

$ composer require 1stformations/php-axon-bridge

Nous devons maintenant créer une commande de console CLI pour que l'application émette des commandes à l'aide du bus de commandes Axon. Le bus de commande sera responsable de la livraison et du traitement des commandes.

#!/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();

Dans cet exemple, nous avons enregistré une commande de console places:create et écrit son code. Ce code utilise PHP Axon Bridge pour publier les commandes Place/CreatePlaceCommand sur le bus de commandes Axon. Le contrôleur de commandes gérera les commandes ici.

Nous pouvons envoyer une requête au bus de requête Axon et recevoir une réponse en utilisant :

use AxonQueryBusQueryBus;
use AxonQueryHandlingSimpleQueryBus;

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

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

Exécuter une application PHP Axon Framework

Maintenant nous pouvons Utilisez la commande suivante pour exécuter l'application PHP Axon :

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

La console affichera le message Place créé. Le bus de commande Axon créera une nouvelle instance Place à l'aide de notre objet de commande, qui est sérialisé en JSON et stocké sur le disque. Le contrôleur de requête utilisera « l'objet de requête » pour interroger le fichier JSON et renvoyer la réponse à la requête.

Conclusion

Cet article présente comment implémenter Axon Framework en PHP. Nous avons utilisé le framework Symfony et l'extension PHP Axon Bridge. Grâce à Axon Framework, vous pouvez diviser vos applications en modules plus petits pour une meilleure évolutivité et de meilleures performances, et c'est plus simple que jamais. Si vous êtes un développeur PHP et envisagez d'implémenter une application de microservices, Axon Framework devrait être votre premier choix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn