Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk membangunkan seata-php? Analisis ringkas panduan pembangunan

Bagaimana untuk membangunkan seata-php? Analisis ringkas panduan pembangunan

青灯夜游
Lepaskan: 2023-04-11 07:58:01
ke hadapan
4200 orang telah melayarinya

Bagaimana untuk membangunkan seata-php? Artikel ini akan bercakap tentang panduan pembangunan seata-php dan menerangkan beberapa pengetahuan pra-syarat saya harap ia akan membantu anda!

Bagaimana untuk membangunkan seata-php? Analisis ringkas panduan pembangunan

Artikel ini terutamanya berharap dapat membantu semua orang mengambil bahagian dalam pembangunan seata/seata-php dan memberikan beberapa penjelasan tentang pengetahuan pra-syarat .

seata/seata-php kini merupakan pakej komponen transaksi teragih yang dibangunkan berdasarkan rangka kerja hyperf dan serasi dengan dua sambungan coroutine swoole dan swow Pembangun kemudian juga boleh mempertimbangkan keserasian dengan dua sambungan coroutine ini

Pengetahuan prasyarat

Semoga semua orang mengambil bahagian seata/seata- php Sebelum membangunkan pastikan anda memahami perkara berikut dahulu

Bagaimana untuk memulakan projek

Mula-mula kita perlu mencari direktori fail untuk memuat turun kod

# 根据自己实际情况来创建目录
mkdir ./seata-dev
Salin selepas log masuk

Seterusnya, masukkan direktori kami

# 根据自己实际情况来创建目录
cd ./seata-dev
Salin selepas log masuk

Kami akan mengklon seata/seata-php

# 根据自己实际情况来创建目录
git clone git@github.com:seata/seata-php.git
Salin selepas log masuk

Seterusnya, gunakan swoole mengikut keutamaan anda Atau swow laksanakan yang berikut arahan masing-masing untuk mencipta projek rangka kerja, dengan hyperf dokumen penciptaan projek hyperf

# swoole
composer create-project hyperf/hyperf-skeleton 

# swow
composer create-project hyperf/swow-skeleton

# 使用 swow 扩展建议使用 hyperf3.0 版本
composer create-project hyperf/swow-skeleton:dev-master
Salin selepas log masuk

Langkah seterusnya ialah memasukkan projek dan memuatkan clone hanya seata/seata-php ke dalam projek

Mula-mula kita perlu mengubah suai fail composer.json dalam projek dan menambah kandungan berikut

{
    "require": {
        "hyperf/seata": "dev-master"
    },
    "repositories": {
        "seata": {
            "type": "path",
            "url": "../seata-php"
        }
    }
}
Salin selepas log masuk

Akhir sekali, laksanakan composer update -o dalam direktori dan kemudian direktori projek.

Dan gunakan arahan php bin/hyperf.php vendor:publis hyperf/seata untuk menerbitkan fail konfigurasi seata

Akhir sekali gunakan php bin/hyperf.php start untuk memulakan projek

Akhirnya, rakan yang berminat juga boleh mengetahui lebih lanjuthyperf Dokumen berkaitan pembangunan pakej komponen

Bilakah seata-php dimulakan?

Akhir sekali, izinkan saya menerangkan kepada anda projek seata/seata-php Bagaimana ia dimulakan

Kita boleh lihat pada kod seata/seata-php dalam HyperfSeataListenerInitListener pautan projek:InitListener

<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LIC
 */
namespace Hyperf\Seata\Listener;

use Hyperf\DbConnection\Db;
use Hyperf\Event\Contract\ListenerInterface;
use Hyperf\Framework\Event\MainWorkerStart;
use Hyperf\Seata\Annotation\GlobalTransactionScanner;
use Hyperf\Seata\Rm\DataSource\DataSourceProxy;
use Hyperf\Server\Event\MainCoroutineServerStart;

class InitListener implements ListenerInterface
{
    protected GlobalTransactionScanner $globalTransactionScanner;

    protected DataSourceProxy $dataSourceProxy;

    public function __construct(GlobalTransactionScanner $globalTransactionScanner, DataSourceProxy $dataSourceProxy)
    {
        $this->globalTransactionScanner = $globalTransactionScanner;
        $this->dataSourceProxy = $dataSourceProxy;
    }

    public function listen(): array
    {
        // 我们这里监听了下面两个事件,在 server 启动时候,则开始执行该监听器
        return [
            MainCoroutineServerStart::class,
            MainWorkerStart::class,
        ];
    }

    public function process(object $event)
    {
        // Execute any sql to init the database connection
        Db::select('select 1');
        // Init TM and RM clients
        // 这里则是开始初始化 TM 和 RM 的客户端
        $this->globalTransactionScanner->initClients();
    }
}
Salin selepas log masuk

Akhir sekali dilampirkanhyperf Dokumen kitaran hayatperistiwa kitaran hayat hiper

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk membangunkan seata-php? Analisis ringkas panduan pembangunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan