>  기사  >  백엔드 개발  >  Seata-php를 어떻게 개발하나요? 개발 가이드 간략 분석

Seata-php를 어떻게 개발하나요? 개발 가이드 간략 분석

青灯夜游
青灯夜游앞으로
2022-09-26 20:12:064145검색

sata-php를 어떻게 개발하나요? 이 기사에서는 Seata-php 개발 가이드에 대해 설명하고 몇 가지 사전 지식을 설명하겠습니다. 도움이 되기를 바랍니다.

Seata-php를 어떻게 개발하나요? 개발 가이드 간략 분석

이 글은 모든 사람이 seata/seata-php 개발에 참여하고 사전 지식에 대한 몇 가지 설명을 제공하는 데 도움이 되기를 바랍니다.

seata/seata-php는 현재 hyperf 프레임워크를 기반으로 개발된 분산 트랜잭션 구성 요소 패키지이며 swooleswow와 호환됩니다. > 두 가지 코루틴 확장. 미래의 개발자도 이 두 가지 코루틴 확장과의 호환성을 고려할 수 있기를 바랍니다hyperf 框架开发的的一个分布式事物组件包,并且兼容 swooleswow 两个协程扩展,希望后面的开发者们也能考虑到兼容这两个协程扩展

前置知识

希望大家在参与 seata/seata-php 开发之前一定一定一定要先了解以下的东西

如何启动项目

首先我们需要找个文件目录将代码下载下来

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

接下来进入到我们的目录内

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

我们将 seata/seata-php clone 下来

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

接下来根据自己是使用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

接下来是进入到项目内将刚刚 clone 下来的 seata/seata-php 加载到项目内

首先我们需要修改项目内的 composer.json 文件,添加如下内容

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

最后在目录再项目的目录内执行 composer update -o 即可。

并且使用命令 php bin/hyperf.php vendor:publis hyperf/seata 发布一下 seata 配置文件

最后使用 php bin/hyperf.php start 启动项目

最后的最后有兴趣的小伙伴也可以深入了解一下 hyperf 组件包开发相关的文档

seata-php 是在何时启动的

最后给大家讲解一下 seata/seata-php 项目是怎么启动的

我们可以看一下 seata/seata-php 项目内 HyperfSeataListenerInitListener 的代码 link: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

사전 지식

모든 분들이 seata/seata-php 개발에 참여하기 전에 다음 사항을 이해하시기 바랍니다: disc;">
  • seata

  • hyperf 개발 문서🎜🎜
  • 🎜swoole 문서🎜🎜
  • 🎜swow🎜🎜
  • 프로젝트 시작 방법🎜먼저 코드를 다운로드할 파일 디렉터리를 찾아야 합니다🎜 rrreee🎜다음으로 디렉토리를 입력하세요🎜rrreee🎜seata/seata-php🎜rrreee🎜를 복제하겠습니다. 다음으로 우리의 상태에 따라 swoole 또는 swow를 사용하여 다음 명령을 실행하여 하이퍼프 프로젝트 생성 문서와 함께 프레임워크 프로젝트를 생성합니다. hyperf🎜rrreee🎜다음 단계는 프로젝트에 들어가는 것입니다. 그러면 방금 다운로드한 seata/ Seata-php가 프로젝트에 로드됩니다🎜🎜먼저 를 수정해야 합니다 >composer.json 파일에 다음 내용을 추가하세요🎜rrreee🎜마지막으로 해당 디렉터리에서 를 실행한 후 프로젝트 디렉터리인 Composer update -o를 실행하세요. 🎜🎜그리고 php bin/hyperf.php Vendor:publis hyperf/seata 명령을 사용하여 Seata 구성 파일을 게시합니다🎜🎜마지막으로 php bin/hyperf.php start를 사용하여 프로젝트 시작🎜 🎜마지막으로 관심 있는 친구들도 hyperf 컴포넌트 패키지 개발과 관련된 문서를 자세히 살펴볼 수 있습니다🎜

    sata-php는 언제 시작되었나요

    🎜마지막으로 seata/seata-php 프로젝트가 어떻게 시작되는지 설명하겠습니다🎜
    🎜seata/seata-php를 살펴보세요 프로젝트 HyperfSeataListenerInitListener 코드 링크:InitListener 🎜🎜rrreee 🎜마지막으로 hyperf🎜hyperf-lifecycle event🎜🎜🎜의 라이프사이클 문서는 다음과 같습니다. 추천 학습: "🎜PHP Video Tutorial🎜"🎜

    위 내용은 Seata-php를 어떻게 개발하나요? 개발 가이드 간략 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제