Axon Framework は、Java で書かれた軽量の CQRS (Command Query Responsibility Segregation) フレームワークであり、開発者がマイクロサービス アプリケーションを迅速に実装するのに役立ちます。 PHP 開発者は、PHP で Axon Framework を使用する方法を疑問に思っているかもしれません。この記事では、PHP Axon Framework の実装の詳細を紹介します。
Axon Framework の利点
Axon Framework の中核となる概念は CQRS です。これにより、開発者はアプリケーションをコマンドとクエリという 2 つの主要な側面に分類できます。これら 2 つの側面はそれぞれ処理され、異なるモデルに保存されます。これにより、スケーラビリティとパフォーマンスが向上します。さらに、Axon Framework は、開発者がイベント駆動型アプリケーションを簡単に実装できるようにする一連の便利なツールも提供します。
Axon Framework の PHP バージョンの実装
Axon Framework は JAVA で書かれていますが、それ以外の場合は PHP で直接使用できます。 PHP の人気と使いやすさを考慮して、PHP で Axon Framework を実装する方法を検討できます。
PHP Axon Framework を使用するには、まず PHP をインストールする必要があります。
Axon Framework は多くのサードパーティ ライブラリに依存しているため、Axon Framework に必要な依存関係が自動的にインストールされるように Composer をインストールする必要があります。
Axon Framework アプリケーションを作成するには、コマンド コントローラー (コマンド バス) とクエリ コントローラー (クエリ バス) を作成する必要があります。 。ここではSymfonyフレームワークを使用します。
Axon Framework を使用するには、Axon ブリッジ拡張機能をインストールする必要があります。この拡張機能をインストールするには、次のコマンドを使用します。
$ composer require 1stformations/php-axon-bridge
次に、アプリケーションが Axon コマンド バスを使用してコマンドを発行するための CLI コンソール コマンドを作成する必要があります。コマンド バスは、コマンドの配信と処理を担当します。
#!/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();
この例では、コンソール コマンド places:create を登録し、そのコードを作成しました。このコードは、PHP Axon Bridge を使用して、Place/CreatePlaceCommand コマンドを Axon コマンド バスに発行します。ここでコマンド コントローラーがコマンドを処理します。
クエリを Axon クエリ バスに送信し、次のコマンドを使用して応答を受信できます。
use AxonQueryBusQueryBus; use AxonQueryHandlingSimpleQueryBus; $queryBus = new SimpleQueryBus(); $axon = new PhpAxonBridge($commandBus, $serializer); $query = new PlacesFindPlaceQuery($id); $result = $axon->sendQuery(new QueryMessage($query));
PHP Axon Framework アプリケーションの実行
これで、次のコマンドを使用して PHP を実行できるようになります。 Axon アプリケーション:
$ php example.php places:create --latitude=40.71 --longitude=-74.00 --name='New York City'
コンソールは、Place created メッセージを出力します。 Axon コマンド バスは、コマンド オブジェクトを使用して新しい Place インスタンスを作成します。これは JSON にシリアル化され、ディスクに保存されます。クエリ コントローラーは、「クエリ オブジェクト」を使用して JSON ファイルをクエリし、クエリ応答を返します。
結論
この記事では、PHP で Axon Framework を実装する方法を紹介します。 Symfony フレームワークと PHP Axon Bridge 拡張機能を使用しました。 Axon Framework を使用すると、アプリケーションを小さなモジュールに分割してスケーラビリティとパフォーマンスを向上させることができ、これまでよりも簡単になります。あなたが PHP 開発者で、マイクロサービス アプリケーションの実装を検討している場合、Axon Framework が最初の選択肢となるはずです。
以上がPHP はオープンソースの Axon Framework を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。