源仓库地址 https://github.com/cztomczak/phpdesktop/wiki 可以在上面查看详细信息 基本说明 1.php目录存放php的目录,php.exe在php目录下 2.www目录存放你网站的代码,若使用composer,则composer.json在www目录下 3.settings.json 里面有很多配置,如是否开启debug窗口,具体可以在上面的源仓库地址查看。 4.支持web...
通常,很多人都是在控制器里直接调用view()方法渲染视图文件,因为很多框架都是这么干的,于是大家都这么干了,但这种方式并不好,使得view与controller极度耦合。 webman中的controller没有传递request对象,使得代码写起来有些繁琐,基本每个action要传递request,但如果在construct中传递request,就可以这么写: protected $request; ...
webman-framework/src/App.php几处性能优化(建议官方修改) 不是鸡蛋里挑骨头,webman本身就是出于对性能的追求,所以应要该精于求精,改进任何不太合理的地方。 guessControllerAction(...)这个方法,在foreach循环中用了array_merge,array_merge这个方法性能并不是很好,另一个问题是进行了两次foreach循环,实际只需要一次,看对比图。 ...
看了webman框架性能介绍,有点垂涎,于是着手体验一下,但有些地方与自己的架构思维不太符合,还发现了一些性能问题,在此分享如何修改和优化。 如何修改框架源码? 直接去修改源文件的代码这种方式不可取,因为官方升级后不好同步,也不好对比文件修改了什么地方,所以最好的方式是利用composer加载方式,重新创建一个目录,把源码文件复制到新建目录里进行修改,最后利用自己创建的autoload加载文件,具体流程如下: 在...
鉴于之前的老版本是纯 Bash 写的,扩展性不是很好,而且里面的库、扩展无法及时使用最新版,所以一怒之下重写了整个编译项目。新版本支持旧版本的所有扩展,同时也新增了很多扩展。 https://github.com/crazywhalecc/static-php-cli 新版本可以手动本地在 Debian、Ubuntu、Alpine、macOS 下构建,也可以在 GH Action 手动触发构建。同时支持了一些新的特性...
PHP版本设置为“纯静态” 反向代理设置 目标URL: http://0.0.0.0:8787 webman后台启动 php ./start.php start -d ...
目前我的PHP版本是8.1,在限制同一设备只能一个登录时,调用Gateway::sendToCurrentClient或Gateway::sendToClient发送给第二个同类设备,第二个同类设备再在Events类中查找同一个帐号其他设备,并通过Gateway::sendToUid发送时数据为null导致报如下错误。 虽然最后在发送之前加上判断,防止发送数据为null。同时也说明vendor\workerman\g...
把ThinkPHP的官方文档撸了3遍以上,Webman撸了两边,再加上实际项目的开发和对比,才有的本文章,希望能帮到大家,如有错误和疏漏请不吝赐教~ 1、webman内存常驻,业务执行只有3个流程(框架接收请求、框架执行业务逻辑、框架将结果返回给客户端);TP业务流程从 nginx/apache接收请求 到 php-fpm初始化环境,如创建变量列表 到 框架初始化(载入 Composer 的自动加载 autoload...
PushService PushService 是一个推送服务平台,客户端基于订阅模式,兼容 pusher,创建应用信息即可快速使用。 使用 webman + GatewayWorker 开发实现 客户端连接、应用管理、数据统计、订阅发布数据等。 项目地址 https://github.com/hsk99/push-service 安装 composer安装 创建项目 composer create-proj...
结合帖子分享,成功安装,总结如下 1.安装webman composer create-project workerman/webman 2.webman框架升级,安装console,webman安装 composer require workerman/webman-framework ^1.4.0 && composer require webman/console ^1.0.27 &&a...
写用户认证中间件的时候遇到一个问题, 我要在中间件里校验token, 在控制的beforeAction中获取用户信息, 然而它先走的是beforeAction, 就是控制器先于中间件执行, 后来看到这个贴子控制器与中间件执行顺序 才知道ActionHook本身就是全局中间件, 那这样的话, 我还不如直接在beforeAction里做用户校验, 但是为了逻辑上的规范, 我禁用了全局ActionHook中间件, 在需要b...
个人建议一些核心的扩展、函数依赖,可以另外开发一个requirements check工具,不需要再代码逻辑中不停地check。对一些非核心的依赖也可以做polyfill。比如在start.php里的这个check: Worker::$onMasterReload = function () { if (function_exists('opcache_get_status')) { ...... ...
论坛 访问地址 https://laravel-workerman.iwnweb.com/ 引入 webman/push 适配说明文档 https://github.com/mouyong/laravel-octane-workerman/tree/gatewayworker/webman_plugin_require_example 在 laravel 框架中引入 webman plugin 1. 添加插件安装脚...
🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 ...
在路由定义的时候是否觉得定义路由很麻烦 尤其是重复的路由定义工作 大型项目的话路由就更多了在路由定义的时候是否觉得定义路由很麻烦 尤其是重复的路由定义工作 大型项目的话路由就更多了 其实我们是可以偷点懒得 当然如果官方在下一个版本中采纳了资源型路由 那么请相信 路由重复定义将不再烦恼你 index方法我们常用来获取列表数据 show方法我们常用来获取详情 create方法我们常用于获取新增数据 store方法我...
1. 在 Homestead/scripts/site-types/ 目录下创建 webman.sh 脚本文件。 内容如下: #!/usr/bin/env bash declare -A params=$6 # Create an associative array declare -A headers=${9} # Create an associative array declare -A ...
现在主要工作为前端开发,如果有后台开发伙伴可加入,下方有群 包含php-jwt,thinkorm模块,自我提升学习使用 🌈 介绍 基础版 js(不带国际化,基于vue-next-admin-template V0.2.2版) 基于 vue3.x + CompositionAPI + vite + element plus + vue-router-next,适配手机、平板、pc 的后台开源免费模板。 ⛱️ 线上预览 ...
🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 🔰🔰🔰 为了方便维护,源仓库 webman-casbin 插件贡献给了 PHP-Casbin 官方 立即使用 https://www.workerman.net/plugin/6...
webmanTracer插件使用教程 webman的链路追踪组件,基于xiaoyangguang/aop, 实现了基本的链路追踪组件, 比如mysql es redis 开发者可自定义追踪方法函数,实现自己需要追踪的组件,可追踪composer加载的三方库,比如thinkorm的数据库执行函数 (可选择自定义收集追踪上报数据类,并配置在tracer.php中 如果example无法满足你的需求) 插件安装 co...
webman刚出来的时候我阅读过webman的代码,也阅读过其他框架的代码,然后我自己撸了一个框架casualman,最早单纯只是为了玩,后面我把他运用在了公司部分项目的生产环境,已经稳定运行了半年以上了。 在这个过程中,结合我自己的一些个人习惯和我看到的其他框架的一些好的地方,我发现webman的代码在一些地方可以被建议: 入口文件start.php比较凌乱臃肿 其实本着可以用就没问题的思路,我觉得代码写成什么样,...