seata-php开发怎样做,要了解哪些知识
Admin 2022-11-18 群英技术资讯 781 次浏览
今天就跟大家聊聊有关“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/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-生命周期事件
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家介绍了一次因composer错误使用引发的问题与解决方法,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
PHP Pipeline 实现中间件的示例代码,Pipeline 设计模式,水管太长,只要有一处破了,就会漏水了,而且不利于复杂环境弯曲转折使用。所以我们都会把水管分成很短的一节一节管道,然后最大化的让管道大小作
匿名函数(Anonymousfunctions),也叫闭包函数(closures),允许临时创建一个没有指定名称的函数。最经常用作回调函数参数的值。当然,也有其它应用的情况。Example...
如图这有可能是因为文件的结构问题。很大可能是将.php文件放到了WEB-INF文件下了,因为该文件用户不可访问,所以自然也就接受不到数据。可能是Tomcat的问题。所以在配置php时不要写WEB-INF,如图 所以直接填phpbin就好了,然后在ROOT目录下建立phpbin文件夹,如图 然后重试,即可解决问题。
1.获取数组所有的键或值:array_keys() array_values();2.交换数组中键和值的位置,若重复前面的会被后面的覆盖:array_flip()...
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008