先上仓库: Repo Github 相关:Webman插件 Webman插件市场 Repo composer require laysense/dns #注:这是webman用的不是workerman用的 截图 Workerman-DNS Workerman的DNS协议,实现了简单的DNS协议解析和响应,通过本协议支持,您可以利用Workerman实现基于PHP的Dns服务器 您既可以实现递归服务器,进行D...
烦恼:之前总是在控制器每个方法中重复写try catch异常捕获感觉非常繁琐 // 之前写的 伪代码 class DemoController { public function test(Request $request) { try{ // 业务逻辑 } catch (ValidationException $e) { // ...
https://www.workerman.net/doc/gateway-worker/principle.html Gateway 注册到Register上 BusinessWorker注册到Register上 Register 将 Gateway 列表 给 BusinessWorer BusinessWorker依次连接所有Gateway GateWay将连接自己的 BusinessWorker 存到_wor...
🐇 最新更新于2020-06-02 前言 最早接触reactor模型的时候,应该是在参与一个叫zanphp项目的时候,他是一个类似swoole的php拓展项目,当然它们之间的故事我就不多说了,也有一些冲突和迷茫;在那个时间段的PHP发展还是很蓬勃向上的,那时候的滴滴、有赞、百度都有很多很多PHP项目,那时候的原生PHP有许多许多的瓶颈,所以国内那时候涌现了很多使用C来为PHP加速的开发者。 随着PHP慢慢发展,P...
前言 我目前所在的部门主要是负责公司的数据相关的内容,可以理解为数据统计,做的工作其实也比较复杂,除了做一些数据统计分析业务之外,需要做一些基础服务的开发;我部门因为内部开发语言并不统一,在这种情况下,项目被动的分成了A\B\C\D等子项目,并没有将项目合并到一个项目中开发,在这种过程中,被动的接受了SOA这样的结构。 A项目是一个任务的调度分配服务,可以理解为一个大型的脚本/定时执行器,有点类似与现在比较流行的se...
【1】深入workerman信号机制 这个话题是本人《深入PHP内核源码》视频教程里的一个插录环节,剖析扩展源码的细节移步B站。 【2】研究背景 workerman内核实现有依赖PCNTL扩展,这是因为涉及到信号编程,其中局部依赖了pcntl_signal()和 pcntl_signal_dispatch() 这两个函数,至今社区对这个话题的讨论热度依旧不减,但是这种机制有个缺陷:性能倒不低,主要是需要用户空间不断的...
异步HTTP走的是ConnectionPool.php 默认 new client的时候 就可以填充附加参数 百度搜索不到结果 看了一下源码。。。。原来要在这里赋值 例如我服务器有2个IP 127.0.0.1 127.0.0.2 默认 是127.0.0.1 我们绑定 127.0.0.2 只需要 $http=new Client(array('context'=>array('socket'=>array...
项目名称:HPAdmin 项目介绍:HPAdmin是一套渐进式开源后台,基于Webman开发的极速后台框架,采用前后端分离技术,数据交互采用json格式,功能低耦合高内聚;核心模块支持系统设置、权限管理、管理员、权限菜单、快速构建CRUD功能页面等功能,开发目的,让后端人员不触碰任何一段HTML代码即可快速开发后台。 开源地址:https://gitee.com/hangpu888/hpadmin 主页地址:http...
注意 webman版本>=1.2时请使用 webman/action-hook插件 实现beforeAction() afterAction()。 否则请参考以下教程手动配置 注意 webman版本>=1.4.6 时,webman默认关闭了控制器复用,可以直接使用控制器__construct()为每个请求初始化工作 在传统框架中,每个请求都会实例化一次控制器,所以很多开发者__construct()方...
我修改的目的主要是为了使用中间件能对cookie进行透明的加解密,在这里分享一下,同时如果有大佬发现有什么问题也欢迎指出。 修改 Webman\Http\Request 类 添加updateCookie方法用来刷新请求实例中的cookie,目的是为了使用中间件来对请求Cookie进行解密。不过需要注意的是,webman会对request对象进行缓存,就是满足一定条件的两个请求,后面的请求webman会直接取出缓存而不...
本人再接触casbin之前,一直是使用的thinkrbac那种鉴权的方式,目前在用webman做后台管理,在权限这块出于好奇选择的casbin,使用期间由于一些自身错误的理解也得到了插件作者的帮助(再次感谢),在即将完成鉴权功能的时候,新的问题就出现了,首先用户-角色,角色-菜单,这种设计的方式我还是按接触casbin之前的理解做的,这样设计会有如下几点问题: 如果菜单表变动(增删) 需要同步角色-菜单关联表,ca...
webman 1.2版本支持think-orm插件,可自动安装think-orm并配置webman。该插件需要webman>=1.2.1,如果你的webman版本是旧版本,请参考以下文档手动配置安装think-orm。 安装ThinkOrm composer require topthink/think-orm 配置文件 config/thinkorm.php 内容如下: <?php return...
作为PHP开发者都应该知道PHP有两种运行模式:php-fpm和php-cli,那么在 Swoole 5.0中将迎来一种新的运行模式:swoole-cli。 Swoole 将像node.js这样作为独立程序提供给用户,而不是作为PHP的一个扩展。 除此之外swoole-cli会尽可能地对php-src进行裁剪,移除一些不用的机制、模块、扩展、函数、类型、常量、代码,使得整个程序可以在几分钟之内编译完成。 了解更多S...
webmanTracer插件使用教程 webman的链路追踪组件,基于xiaoyangguang/aop, 实现了基本的链路追踪组件, 比如mysql es redis 开发者可自定义追踪方法函数,实现自己需要追踪的组件,可追踪composer加载的三方库,比如thinkorm的数据库执行函数 (可选择自定义收集追踪上报数据类,并配置在tracer.php中 如果example无法满足你的需求) 插件安装 co...
FlowerMQ FlowerMQ 一个基于Workerman和Redis实现的消息队列,一个小小工具,用来给主项目解耦的,也支持延迟队列,失败尝试这些。 运行依赖 php7.2 Redis5.0.4上,因为用到Redis Stream pecl依赖,redis扩展 composer依赖,workerman/workerman 4.0以上 安装 composer安装 composer create-project...
aop使用教程 composer require yzh52521/webman-aop 在根目录增加define.php use yzh52521\aop\ClassLoader; $appConfig = config('app'); if (isset($appConfig['default_timezone'])) { date_default_timezone_set($appConfig['de...
这个项目由来很久了,大概至少有6年的历史,最早我工作的时候接触的一个项目叫struct,他可以把数组映射到对象属性上进行数据类型内容等判断或者过滤,也可以进行转换,也可以自行注册handle进行过滤、判断;后来我把这个项目重构了一下,适用在常驻内存的环境下,同时,这个项目也是我用在生产环境中的一个项目; 这个项目有点像残疾的注解,不过我觉得用起来还挺好的,所以推荐给大家 测试覆盖率应该超过了80%,常用的几种方案都是...
TransferStatistics v2 TransferStatistics v2 使用webman开发的一个应用监控系统,用于查看应用调用记录、请求量、调用耗时、调用分析等。 系统使用 HTTP 接收上报数据;使用 Redis 进行数据汇总统计;使用 MySql 存储统计数据和上报信息 项目地址 https://github.com/hsk99/transfer-statistics 所需环境 PHP版...