Rumah > Artikel > pembangunan bahagian belakang > PHP melaksanakan Rangka Kerja Axon sumber terbuka
Rangka Kerja Axon ialah rangka kerja CQRS (Command Query Responsibility Segregation) ringan yang ditulis dalam Java, yang membantu pembangun melaksanakan aplikasi perkhidmatan mikro dengan cepat. Sebagai pembangun PHP, anda mungkin tertanya-tanya cara menggunakan Rangka Kerja Axon dalam PHP. Artikel ini akan memperkenalkan anda kepada butiran pelaksanaan Rangka Kerja Axon PHP.
Kelebihan Rangka Kerja Axon
Konsep teras Rangka Kerja Axon ialah CQRS. Ia membolehkan pembangun memecahkan aplikasi kepada dua aspek utama: arahan dan pertanyaan. Kedua-dua aspek ini diproses dan disimpan dalam model yang berbeza masing-masing. Ini membolehkan skala dan prestasi yang lebih baik. Selain itu, Rangka Kerja Axon juga menyediakan satu set alat berguna yang memudahkan pembangun melaksanakan aplikasi dipacu peristiwa.
Melaksanakan versi PHP Axon Framework
Axon Framework ditulis dalam JAVA, jika tidak, kita boleh menggunakannya secara langsung dalam PHP. Memandangkan populariti dan kemudahan penggunaan PHP, kita boleh melihat bagaimana untuk melaksanakan Rangka Kerja Axon dalam PHP.
Untuk menggunakan PHP Axon Framework, kita perlu memasang PHP terlebih dahulu.
Rangka Kerja Axon bergantung pada banyak perpustakaan pihak ketiga, jadi kami perlu memasang Komposer supaya kebergantungan yang diperlukan oleh Rangka Kerja Axon boleh dipasang secara automatik.
Untuk mencipta aplikasi Rangka Kerja Axon, kita perlu mencipta pengawal arahan (bas arahan) dan pengawal pertanyaan (bus pertanyaan ) . Di sini kita akan menggunakan rangka kerja Symfony.
Untuk menggunakan Rangka Kerja Axon, kita perlu memasang sambungan jambatan Axon. Untuk memasang sambungan ini, gunakan arahan berikut:
$ composer require 1stformations/php-axon-bridge
Sekarang kita perlu mencipta arahan konsol CLI untuk aplikasi mengeluarkan arahan menggunakan bas arahan Axon. Bas arahan akan bertanggungjawab untuk penghantaran dan pemprosesan arahan.
#!/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();
Dalam contoh ini, kami mendaftarkan dan mengekodkan arahan konsol places:create. Kod ini menggunakan Jambatan Axon PHP untuk menerbitkan arahan Place/CreatePlaceCommand ke bas arahan Axon. Pengawal arahan akan mengendalikan arahan di sini.
Kami boleh menghantar pertanyaan ke bas pertanyaan Axon dan menerima respons menggunakan:
use AxonQueryBusQueryBus; use AxonQueryHandlingSimpleQueryBus; $queryBus = new SimpleQueryBus(); $axon = new PhpAxonBridge($commandBus, $serializer); $query = new PlacesFindPlaceQuery($id); $result = $axon->sendQuery(new QueryMessage($query));
Menjalankan aplikasi PHP Axon Framework
Kini kami boleh menjalankan PHP menggunakan yang berikut arahan aplikasi Axon:
$ php example.php places:create --latitude=40.71 --longitude=-74.00 --name='New York City'
Konsol akan mengeluarkan mesej Place yang dibuat. Bas arahan Axon akan mencipta contoh Tempat baharu menggunakan objek arahan kami, yang bersiri kepada JSON dan disimpan pada cakera. Pengawal pertanyaan akan menggunakan "objek pertanyaan" untuk menanyakan fail JSON dan mengembalikan respons pertanyaan.
Kesimpulan
Artikel ini memperkenalkan cara untuk melaksanakan Rangka Kerja Axon dalam PHP. Kami menggunakan rangka kerja Symfony dan sambungan PHP Axon Bridge. Menggunakan Rangka Kerja Axon, anda boleh memecahkan aplikasi anda kepada modul yang lebih kecil untuk kebolehskalaan dan prestasi yang lebih baik, dan ia lebih mudah berbanding sebelum ini. Jika anda seorang pembangun PHP dan sedang mempertimbangkan untuk melaksanakan aplikasi perkhidmatan mikro, Rangka Kerja Axon harus menjadi pilihan pertama anda.
Atas ialah kandungan terperinci PHP melaksanakan Rangka Kerja Axon sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!