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

Bagaimana untuk membangunkan seata-php? Analisis ringkas panduan pembangunan

青灯夜游
青灯夜游ke hadapan
2022-09-26 20:12:064161semak imbas

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

Seterusnya, masukkan direktori kami

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

Kami akan mengklon seata/seata-php

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

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

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"
        }
    }
}

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

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!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam