ホームページ > バックエンド開発 > PHPチュートリアル > Seata-php を開発するにはどうすればよいですか?開発ガイドの簡単な分析

Seata-php を開発するにはどうすればよいですか?開発ガイドの簡単な分析

青灯夜游
リリース: 2023-04-11 07:58:01
転載
4165 人が閲覧しました

seata-php を開発するにはどうすればよいですか?この記事では、seata-php 開発ガイドについて説明し、前提知識について説明します。

Seata-php を開発するにはどうすればよいですか?開発ガイドの簡単な分析

この記事は主に、seata/seata-php の開発に参加するすべての人を支援し、前提条件の知識について説明することを目的としています。

seata/seata-php は現在、hyperf フレームワークに基づいて開発された分散トランザクション コンポーネント パッケージであり、swoole および ## と互換性があります。 #swow 2 つのコルーチン拡張機能。後続の開発者がこれら 2 つのコルーチン拡張機能との互換性も考慮できることを願っています

前提知識

seata/seata-php開発に参加する前に、皆さんが次のことを理解しておく必要があります。##seata

    hyperf 開発ドキュメント
  • ##swoole ドキュメント
  • # #swow

  • ##プロジェクトの開始方法

  • まず、ファイル ディレクトリを見つけて、 code

    # 根据自己实际情况来创建目录
    mkdir ./seata-dev
    ログイン後にコピー
    次にディレクトリに入ります
    # 根据自己实际情况来创建目录
    cd ./seata-dev
    ログイン後にコピー
    seata/seata-php
# 根据自己实际情况来创建目录
git clone git@github.com:seata/seata-php.git
ログイン後にコピー
Next swoole または swow のどちらを使用しているかに応じて、次のコマンドを実行して、 hyperf プロジェクト作成ドキュメント 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
ログイン後にコピー
とともにフレームワーク プロジェクトを作成します。次のステップは、プロジェクトに入り、クローン をダウンロードすることです。 seata/seata-php

がプロジェクトにロードされます

まず、プロジェクト内の

composer.json

ファイルを変更し、次のコンテンツを追加する必要があります

{
    "require": {
        "hyperf/seata": "dev-master"
    },
    "repositories": {
        "seata": {
            "type": "path",
            "url": "../seata-php"
        }
    }
}
ログイン後にコピー
最後に、

composer update を実行します-o

ディレクトリおよびプロジェクト ディレクトリ内。

そしてコマンド php bin/hyperf.php ベンダー:publis hyperf/seata を使用して、seata 設定ファイルを公開します

最後に

php bin/hyperf.php を使用しますstart プロジェクトを開始します

最後に、興味のある友人は、

hyperf コンポーネント パッケージ開発に関するドキュメント

## について詳しく知ることができます。コンポーネント開発ガイド

ConfigProvider メカニズム

  • seata -When php は開始されましたか?

  • 最後に、seata/seata-php プロジェクトがどのように開始されたかを説明しましょう

seata/seata-php プロジェクトの Hyperf\Seata\Listener\InitListener のコード リンクを見てください: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();
    }
}
ログイン後にコピー

最後に、hyperf

hyperf-ライフ サイクル イベント

のライフ サイクル ドキュメントを見てみましょう。推奨される学習: 「PHP ビデオ チュートリアル 」 「

以上がSeata-php を開発するにはどうすればよいですか?開発ガイドの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート