>  기사  >  백엔드 개발  >  PHP는 오픈 소스 Axon Framework를 구현합니다.

PHP는 오픈 소스 Axon Framework를 구현합니다.

WBOY
WBOY원래의
2023-06-18 15:56:161058검색

Axon Framework는 Java로 작성된 경량 CQRS(Command Query Responsibility Segregation) 프레임워크로, 개발자가 마이크로서비스 애플리케이션을 신속하게 구현하는 데 도움이 됩니다. PHP 개발자라면 PHP에서 Axon Framework를 사용하는 방법이 궁금할 것입니다. 이 기사에서는 PHP Axon Framework의 구현 세부 사항을 소개합니다.

Axon Framework의 장점

Axon Framework의 핵심 개념은 CQRS입니다. 이를 통해 개발자는 애플리케이션을 명령과 쿼리라는 두 가지 주요 측면으로 나눌 수 있습니다. 이 두 가지 측면은 각각 다른 모델에서 처리되고 저장됩니다. 이를 통해 확장성과 성능이 향상됩니다. 또한 Axon Framework는 개발자가 이벤트 기반 애플리케이션을 보다 쉽게 ​​구현할 수 있도록 해주는 유용한 도구 세트도 제공합니다.

Axon Framework의 PHP 버전 구현

Axon Framework는 JAVA로 작성되었습니다. 그렇지 않으면 PHP에서 직접 사용할 수 있습니다. PHP의 인기와 사용 용이성을 고려하여 PHP에서 Axon Framework를 구현하는 방법을 살펴보겠습니다.

  1. 필요한 패키지 설치

PHP Axon Framework를 사용하려면 먼저 PHP를 설치해야 합니다.

Axon Framework는 많은 타사 라이브러리에 의존하므로 Axon Framework에 필요한 종속성이 자동으로 설치될 수 있도록 Composer를 설치해야 합니다.

  1. PHP Axon Framework 애플리케이션 만들기

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();

이 예에서는 place: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'

콘솔에서 출력할 내용은 다음과 같습니다. 생성된 메시지를 저장하세요. Axon 명령 버스는 JSON으로 직렬화되고 디스크에 저장되는 명령 개체를 사용하여 새로운 Place 인스턴스를 생성합니다. 쿼리 컨트롤러는 "쿼리 개체"를 사용하여 JSON 파일을 쿼리하고 쿼리 응답을 반환합니다.

결론

이 글에서는 PHP에서 Axon Framework를 구현하는 방법을 설명합니다. 우리는 Symfony 프레임워크와 PHP Axon Bridge 확장을 사용했습니다. Axon Framework를 사용하면 더 나은 확장성과 성능을 위해 애플리케이션을 더 작은 모듈로 나눌 수 있으며 그 어느 때보다 쉽습니다. PHP 개발자이고 마이크로서비스 애플리케이션 구현을 고려하고 있다면 Axon Framework가 첫 번째 선택이 되어야 합니다.

위 내용은 PHP는 오픈 소스 Axon Framework를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.