webman中间件调用原理示例

// 定义事先的中间件 $middlewares = [ function ($request1, $next) { echo "Middleware 1 start\n"; $request = $next($request1 ); echo "Middleware 1 end\n"; return $request; }, f...

sunwenzheng 发表与 2023-11-22 967 浏览 1 评论
PHP编译器BPC6.4发布,成功编译webman,二进制打包源码保护软件授权All in One!

不了解BPC是什么的可以翻看之前的 几个分享,也可以翻阅 知乎专栏 或者 v2ex 了解更多. 简言之,BPC可以将PHP代码最终转译成C语言,然后编译成动态链接库或者可执行程序,实现 PHP Native AOT! 0. 前置说明 本文所述的所有操作都是在 Ubuntu 18.04 amd64 上完成的,但这并不是说BPC只能在 Ubuntu 18.04 上运行. BPC编译器自身已验证过可以在 Ubuntu 1...

heguangyu5 发表与 2023-10-07 2540 浏览 8 评论
基于webman的CMS,企业官网通用PHP后台管理系统

2023年9月11日10:47:00 仓库地址: https://gitee.com/open-php/zx-webman-cms 还有laravel+scui的版本目前还未开源,电商laravel版本也差不多了,后续在移植webman 算是比较标准的php+vue的项目,算是回馈社区吧 CMS,企业官网通用PHP后台管理系统 English doc 框架介绍 Webman SCUI 后端开发组件 php 8.0...

zh7314 发表与 2023-09-11 3462 浏览 9 评论
如何在webman中自定义全局处理错误

webman中不能使用die()和exit()等函数方法,用了会影响服务。 在框架中想要在任何地方都停止程序向后面继续执行,并响应错误到客户端怎么办呢? 我们可以自定义异常处理类,默认的异常处理在composer的代码文件中,我们不能修改,但是我们可以通过修改配置文件,使用自己的异常错误处理类。 ├── app 应用目录 ├── config ...

wekyun 发表与 2023-06-16 1547 浏览 1 评论
一个超级简单的RPC

关于 服务端的实现基于 workman。 使用 stream_socket_* 实现了一个简单的同步 client ,目前只支持 workman 的 frame 协议。 使用示例:https://github.com/caylof/php-rpc 服务定义说明 服务方法的定义需要遵循如下方式函数签名: function (array | Google\Protobuf\Internal\Message $reques...

caylof 发表与 2023-06-15 3362 浏览 2 评论
基于Webman+Vue的类Trello在线看板工具

项目简介 FadeTask看板是一款基于webman+vue的类Trello看板。 项目地址 FadeTask。 项目为个人业余时间开发,难免存在bug,请不要吝啬你的反馈哦,这样会使FadeTask变得越来越好。 项目特性 看板基础功能:看板图示,卡片拖拽,成员管理等 支持列表、卡片归档功能 支持markdown编辑卡片描述 标签功能,支持自定义标签 截止日期,支持邮件通知(邮件注册用户) 自定义字段,支持文本、...

lvshuang 发表与 2023-04-19 8063 浏览 8 评论
分享一个单文件的 ChatGPT api接口实现

一个非常简单的单文件 ChatGPT api接口实现 最终效果图如下. 使用说明 基于webman,首先要安装好webman 然后安装 OpenAI 的官方php库 composer require openai-php/client composer require guzzlehttp/guzzle api在国内已被墙,但官方库(< v0.4.0)不支持使用代理,所以需要手动修改官方库...

banro512 发表与 2023-03-07 3983 浏览 6 评论
简单实现webman类似tp在控制器中定义中间件

webman不支持在控制器中定义中间件,因为迁移tp代码自己实现了控制器中间件支持,分享同时也请大家指点指点。 贴代码: 首先创建自己的控制器中间件接口 <?php namespace app\common\middleware; use Webman\Http\Request; use Webman\Http\Response; interface ControllerMiddlewareInterfa...

kyour 发表与 2023-01-08 1597 浏览 2 评论
Workerman DNS协议

先上仓库: Repo Github 相关:Webman插件 Webman插件市场 Repo composer require laysense/dns #注:这是webman用的不是workerman用的 截图 Workerman-DNS Workerman的DNS协议,实现了简单的DNS协议解析和响应,通过本协议支持,您可以利用Workerman实现基于PHP的Dns服务器 您既可以实现递归服务器,进行D...

EchoNoch 发表与 2022-12-16 1597 浏览 4 评论
记录一次使用webman异常处理类

烦恼:之前总是在控制器每个方法中重复写try catch异常捕获感觉非常繁琐 // 之前写的 伪代码 class DemoController { public function test(Request $request) { try{ // 业务逻辑 } catch (ValidationException $e) { // ...

金生水起 发表与 2022-11-11 3603 浏览 2 评论
gateway-worker运行逻辑分析

https://www.workerman.net/doc/gateway-worker/principle.html Gateway 注册到Register上 BusinessWorker注册到Register上 Register 将 Gateway 列表 给 BusinessWorer BusinessWorker依次连接所有Gateway GateWay将连接自己的 BusinessWorker 存到_wor...

sunwenzheng 发表与 2022-08-09 1695 浏览 1 评论
event-loop的一些心得体会

🐇 最新更新于2020-06-02 前言 最早接触reactor模型的时候,应该是在参与一个叫zanphp项目的时候,他是一个类似swoole的php拓展项目,当然它们之间的故事我就不多说了,也有一些冲突和迷茫;在那个时间段的PHP发展还是很蓬勃向上的,那时候的滴滴、有赞、百度都有很多很多PHP项目,那时候的原生PHP有许多许多的瓶颈,所以国内那时候涌现了很多使用C来为PHP加速的开发者。 随着PHP慢慢发展,P...

chaz6chez 发表与 2022-05-28 6177 浏览 7 评论
Nacos在我司的应用及SOA初尝

前言 我目前所在的部门主要是负责公司的数据相关的内容,可以理解为数据统计,做的工作其实也比较复杂,除了做一些数据统计分析业务之外,需要做一些基础服务的开发;我部门因为内部开发语言并不统一,在这种情况下,项目被动的分成了A\B\C\D等子项目,并没有将项目合并到一个项目中开发,在这种过程中,被动的接受了SOA这样的结构。 A项目是一个任务的调度分配服务,可以理解为一个大型的脚本/定时执行器,有点类似与现在比较流行的se...

chaz6chez 发表与 2022-05-13 7636 浏览 16 评论
【深入workerman的信号机制】研究下PCNTL扩展源码

【1】深入workerman信号机制 这个话题是本人《深入PHP内核源码》视频教程里的一个插录环节,剖析扩展源码的细节移步B站。 【2】研究背景 workerman内核实现有依赖PCNTL扩展,这是因为涉及到信号编程,其中局部依赖了pcntl_signal()和 pcntl_signal_dispatch() 这两个函数,至今社区对这个话题的讨论热度依旧不减,但是这种机制有个缺陷:性能倒不低,主要是需要用户空间不断的...

phpcreeper 发表与 2022-04-22 1721 浏览 2 评论
AsyncTcpConnection 异步HTTP指定出口IP的问题

异步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...

A501 发表与 2022-03-24 1152 浏览 1 评论
基于Webman1.3开发的极速后台内容框架,表格,表单,全局组件均可快速生成页面

项目名称:HPAdmin 项目介绍:HPAdmin是一套渐进式开源后台,基于Webman开发的极速后台框架,采用前后端分离技术,数据交互采用json格式,功能低耦合高内聚;核心模块支持系统设置、权限管理、管理员、权限菜单、快速构建CRUD功能页面等功能,开发目的,让后端人员不触碰任何一段HTML代码即可快速开发后台。 开源地址:https://gitee.com/hangpu888/hpadmin 主页地址:http...

楚羽幽 发表与 2022-03-22 6327 浏览 6 评论
手动配置 beforeAction() afterAction()

注意 webman版本>=1.2时请使用 webman/action-hook插件 实现beforeAction() afterAction()。 否则请参考以下教程手动配置 注意 webman版本>=1.4.6 时,webman默认关闭了控制器复用,可以直接使用控制器__construct()为每个请求初始化工作 在传统框架中,每个请求都会实例化一次控制器,所以很多开发者__construct()方...

walkor 发表与 2022-03-18 3482 浏览 6 评论
修改了下webman的请求和响应类,使得可以在中间件中更新Cookie

我修改的目的主要是为了使用中间件能对cookie进行透明的加解密,在这里分享一下,同时如果有大佬发现有什么问题也欢迎指出。 修改 Webman\Http\Request 类 添加updateCookie方法用来刷新请求实例中的cookie,目的是为了使用中间件来对请求Cookie进行解密。不过需要注意的是,webman会对request对象进行缓存,就是满足一定条件的两个请求,后面的请求webman会直接取出缓存而不...

LEO_D86 发表与 2022-03-16 1872 浏览 1 评论
这两天用casbin的总结

本人再接触casbin之前,一直是使用的thinkrbac那种鉴权的方式,目前在用webman做后台管理,在权限这块出于好奇选择的casbin,使用期间由于一些自身错误的理解也得到了插件作者的帮助(再次感谢),在即将完成鉴权功能的时候,新的问题就出现了,首先用户-角色,角色-菜单,这种设计的方式我还是按接触casbin之前的理解做的,这样设计会有如下几点问题: 如果菜单表变动(增删) 需要同步角色-菜单关联表,ca...

864328615 发表与 2022-03-08 2214 浏览 2 评论
webman手动安装think-orm组件

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...

walkor 发表与 2022-03-03 7935 浏览 5 评论

Tinywan

13340
积分
0
获赞数
0
粉丝数
2020-01-14 加入
×
🔝