seata-php开发怎样做,要清楚哪些知识
发布时间:2023-01-12 08:39 所属栏目:121 来源:互联网
导读:今天就跟大家聊聊有关seata-php开发怎样做,要了解哪些知识的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇seata-php开发怎样做,要了解哪些知识文章能对大家有帮助。 seata/seata-php 目前是基于 hyper
今天就跟大家聊聊有关“seata-php开发怎样做,要了解哪些知识”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“seata-php开发怎样做,要了解哪些知识”文章能对大家有帮助。 seata/seata-php 目前是基于 hyperf 框架开发的的一个分布式事物组件包,并且兼容 swoole 和 swow 两个协程扩展,希望后面的开发者们也能考虑到兼容这两个协程扩展 前置知识 希望大家在参与 seata/seata-php 开发之前一定一定一定要先了解以下的东西 seata hyperf开发文档 swoole文档 swow 如何启动项目 首先我们需要找个文件目录将代码下载下来 # 根据自己实际情况来创建目录 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 组件包开发相关的文档 组件开发指南 ConfigProvider 机制 seata-php 是在何时启动的 最后给大家讲解一下 seata/seata-php 项目是怎么启动的 我们可以看一下 seata/seata-php 项目内 Hyperf\Seata\Listener\InitListener 的代码 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 的生命周期文档 hyperf-生命周期事件 “seata-php开发怎样做,要了解哪些知识”的内容就介绍到这里了,感谢大家的阅读。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读