如何用好swoole/webman/workerman/hyperf呢

2024-06-23 06:44
文章标签 swoole hyperf workerman webman

本文主要是介绍如何用好swoole/webman/workerman/hyperf呢,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Webman框架的依赖

图片

  "require": {    "php": ">=7.2",    "workerman/webman-framework": "^1.5.0",//    "monolog/monolog": "^2.0"  },

图片

依赖的核心框架也是很久的了

webman-framework的核心依赖

图片

 "require": {    "php": ">=7.2",    "ext-json": "*",    "workerman/workerman": "^4.0.4 || ^5.0.0",//核心的依赖    "nikic/fast-route": "^1.3",//路由依赖    "psr/container": ">=1.0"  },

关于"nikic/fast-route"这个包的主人,大家可以看下面的文章,此人精通编译器,精通C/PHP/RUST等技术,一个德国人,这个包在各种框架用的很多像hyperf框架,easyswoole等框架。

php zend内核引擎开发者现状

Workerman的依赖

图片

"require": {        "php": ">=8.1",        "ext-json": "*"    },

核心依赖当然是PHP啦。

workerman框架的东西要学以下内容【前置知识】即可消化理解。

图片

https://edu.51cto.com/lecturer/14934648.html

掌握这2门内容对于驾驭和运用webman/workerman等将具有重大的技术认知和技术运用能力。

swoole的前置知识要具备哪些呢?

图片


"Swoole 项目最初的想法是来自于之前所做的一个企业软件项目。当时大概是 2010 年底,公司产品有一个需求是用户可以任意生成一个 email 地址,然后其他用户可以向这个 email 发邮件,后台能实时将邮件内容解析成数据,并主动通知用户。当时项目使用 PHP 开发的,在实现这个需求时遇到了难题,PHP 只能依赖其他的 SMTP 服务器,通过 pop3 协议定时查收新邮件来完成,这样就不是实时的。如果要实现的实时系统必须自己写一个 TCP Socket Server 实现 SMTP 协议接收数据。当时 PHP 在这个领域几乎是空白,没有一套成熟的网络通信框架。为了实现需求,我从 socket 学起到 TCP/IP、IO 复用、libevent、多进程【学习PHP多进程物物联网2门即可掌握】,最后终于实现了这套程序。做完这个项目后我就想把这套程序开源出来,希望能帮助其他 PHPer 解决在这个领域的难题。如果能有这样一个框架,那么 PHP 就能从单纯地做一个 Web 网站延伸到更大的空间。"

其实SWOOLE老文档和新文档都有提到,很多PHPER用swoole之所以觉得难于掌握,主要还是缺乏 前置知识导致的。

建议就是学习

图片

图片

对SWOOLE以及相关生态框架如hyperf,easyswoole具有极大帮助。

当然要了解更多可以学习以下内容

新课程c++开发PHP扩展实战

关于技术是否过时以及换编程语言问题

https://www.bilibili.com/video/BV15b421i7xv/?spm_id_from=333.999.0.0

https://www.bilibili.com/video/BV1Dj411d7GQ/?spm_id_from=333.999.0.0

这2个白嫖视频即可解答你的疑问,swoole/workerman/webman/go/java/python/nodejs/rust/c++/...等语言都是使用同样的SOCKET API来调用TCP/UDP,并且基于此实现了各种应用协议,此SOCKET API是操作系统内置的函数,功能和名字已经几十年不变,这不就应了荀子讲的:“千举万变,其道一也”或是老子讲的:“道生一,一生二,二生三,三生万物”的话了嘛。

也就是说大家掌握学习了[LINUX 下PHP多进程和物联网课程的知识是可以平移技术经验或是技术认知去看JAVA.GO.PYTHON.RUST.等各种语言上的,不存在过时或是无用的问题]

学完以后的效果

可以自已手撸出workerman/webman/swoole核心,通过实践深化完善对此类网络框架/库应用的理解和驾驭能力,是前置必备基础铺垫知识。同时对于其它编程语言的生态也能触类旁通,因为它们都是使用同样的SOCKET API。

这篇关于如何用好swoole/webman/workerman/hyperf呢的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086423

相关文章

PHP轻量级高性能HTTP服务框架 - webman

摘要 webman 是一款基于 workerman 开发的高性能 HTTP 服务框架。webman 用于替代传统的 php-fpm 架构,提供超高性能可扩展的 HTTP 服务。你可以用 webman 开发网站,也可以开发 HTTP 接口或者微服务。 除此之外,webman 还支持自定义进程,可以做 workerman 能做的任何事情,例如 websocket 服务、物联网、游戏、TCP 服务、

cd swoole-4.3.2

宝塔安装swoole 新建文件夹 mkdir swoole 切入到文件夹中,进行下载安装包 wget http://pecl.php.net/get/swoole-4.3.2.tgz 解压 tar -zxvf swoole-4.3.2.tgz cd swoole-4.3.2 进行如下操作 phpize ./configure ./configure --with-php-config=

swoole coroutine协程消息队列

首先测试一个消息队列的例子: use Swoole\Coroutine as co;$channel = new co\Channel(100);co::create(function() use($channel){for($i = 0; $i < 20; $i++) {co::sleep(1.0);$channel->push(['key'=>$i,'value'=>rand(111111,

swoole http服务器task投递异步任务

官网的task案例代码是在tcp服务器中写的,本人在想,http服务器也是server服务器中的一种,应该也可以投递task任务。 一个简单的http服务器代码:    $server = new Swoole\Http\Server('127.0.0.1',8888);$server->on('request',function($request, $response) use($serv

hyperf注解,自定义注解

注解是 Hyperf 非常强大的一项功能,可以通过注解的形式减少很多的配置,以及实现很多非常方便的功能。 结构 建立注解 在app下建立Annotation注解文件夹 在Annotation下建立Jim.php注解 下面的的@Annotation 和 @Target是全局注解,所以不需要use 引入 注解一共有 3 种应用对象,分别是 类、类方法 和 类属性 @Target()

Workerman在线客服系统源码,附搭建教程

源码介绍: Workerman在线客服系统源码 模块化开发 强大的一键生成功能极速简化你的开发流程,加快你的项目开发 响应式布局 自动适配,无需要担心兼容性问题 完善的权限管理 自由分配子级权限、一个管理员司同时属于多个组别 通用的会员和API模块 共用同一账号体系的Web端会员中心权限验证和API接口会员权限验证 丰富的应用市场 第三方云存储、云短信、富文本编辑器CMS博客

基于swoole的高性能的mvc的http服务器框架--swoolefy

很高兴能够正式完成并开源一个基于swoole实现的高性能的mvc的微服务框架。主要的实现功能: 尝鲜地址:https://github.com/bingcool/swoolefy,欢迎star和issue 开发文档:https://www.kancloud.cn/bingcoolhuang/php-swoole-swoolefy/587501 同时也正式在swoole官网的衍开源项目推广栏得

hyperf 协程作用和相关的方法

什么是协程 协程是一种轻量级的线程,由用户代码来调度和管理,而不是由操作系统内核来进行调度,也就是在用户态进行 判断当前是否处于协程环境内 在一些情况下我们希望判断一些当前是否运行于协程环境内, 对于一些兼容协程环境与非协程环境的代码来说会作为一个判断的依据, 我们可以通过 Hyperf\Coroutine\Coroutine::inCoroutine(): bool 方法来得到结果。 创

Swoole_loader扩展安装图文教程 Swoole扩展文件下载

Swoole_loader扩展安装图文教程 Swoole扩展文件下载 安装和配置Swoole Loader 1 - 下载Swoole Loader 请下载兼容PHP7.2和非线程安全的Swoole Loader扩展,点击下载适配环境的扩展文件 2 - 安装Swoole Loader 将刚才下载的Swoole Loader扩展文件(swoole_loader.dll或swoole_load

tp6+swoole+mysql+nginx+redis高并发优化

1.服务器 IDC机房提供的物理机:单机 40核,64G内存,带宽100M, 2.redis 7.2配置 timeout=600 #空闲连接超时时间,0表示不断开 maxclients=100000 #最大连接数 3.Mysql 5.7配置,按宝塔16-32G优化方案并调整: table_open_cache = 4096 max_connections = 15000 4.Nginx