使用electron框架,封装了webman,使得webman直接变成客户端,运行后,自动启动webman服务,退出软件后,自动关闭所有webman进程及子进程。
之前分享的phpdesktop-webman,不是特别好用,一个是谷歌的内核版本太低了,才57,导致有很多现代的写法都不能用。第二个是之前的有时会有多次启动,后台php进程不会退出的情况。总之不太稳定。
这次使用的electron和webman的结合,chrome内核版本是Chrome/106.0.5249.199的,可以说特别先进了,而且,兼容windows7系统。
其次,在退出后,也会退出后部的php进程
比较好用。
推荐给大家
双击 electron-webman.exe运行
用户名:admin
密码:admin
此项目为electron和webman的结合,将webman项目和php放在resources\extraResources下,会自动启动服务,软件关闭后,会自动关闭所有webman进程及子进程。
仓库源地址是electron-egg,我将其改为可根据setting.json动态配置,以及适配webman
源仓库地址:
https://gitee.com/dromara/electron-egg
源仓库官方文档:
https://www.kaka996.com/
部分原软件的设置没有迁移过来,个人觉得够用了,后续再添加
如果软件打开后,无法正常显示,大概是因为setting.json中的webman的port配置错误,请核对是否与webman项目下的config.php中的listen的端口一致
demo项目已改为兼容sqlite后,不支持原项目的所有表功能,webman官网只支持mysql,已注释下面 table.render 代码
建议在mysql上开发好后,使用navicat的数据库迁移工具,将mysql数据库转为sqlite数据库,然后,关闭代码生成等功能
为了兼容sqlite,需要替换源webman-admin框架的2个文件,一个是
plugin/admin/app/common/Util.php
plugin/admin/app/controller/Crud.php
可以自行对比修改了什么内容
设置文件在根目录下的setting.json文件中,具体含义如下:
{
"openDevTools": true, // 是否打开浏览器调试工具
"openAppMenu": true, // 是否打开应用程序顶部菜单
"windowsOption": {
"title": "学生管理系统xxx", // 软件顶部或左上角名称(会被 html中的 title标签覆盖)
"width": 980,// 软件窗口宽度
"height": 650,// 软件窗口高度
"minWidth": 400,// 软件窗口最小宽度
"minHeight": 300,// 软件窗口最小高度
},
"logger": {
"level": "ERROR", // 日志等级,支持 info error debug warn,默认是 info
"rotator": "day", // day:按天切割 | none:无
"appLogName": "app.log",// 业务日志名
"coreLogName": "ee-core.log",// 框架核心日志名
"errorLogName": "error.log" // 错误日志名
},
"webman": {
"enable": true, // 是否开启webman,此项一定要打开
"hostname": "localhost", // 如果enable为true,并且此项是localhost/127.0.0.1,则会根据下面的配置自动启动webman服务,如果此项是ip地址,则相当于远程访问其他服务器的webman服务
"phpPath": "php8.0", // php.exe所在目录,确保放在 resources\extraResources下
"port": 8789, // webman监听的端口,值为webman项目下的config.php中的listen的端口
"projectPath": "webman", // webman项目目录,确保放在resources\extraResources下
"stdioIgnore": false // 是否输出webman进程的日志
}
}
如果在新电脑上运行,可能需要将resource\php8的目录添加到环境变量中,测试中发现,绝对路径\php.exe 绝对路径\windows.php 会提示 php is not recognized as an internal command,但如果将windows.php换成start.php就没事。可能是因为没有注释掉那个监控进程导致的。
如果在新客户端上部署,出现上面这个问题的话,2个建议,一是将monitor进程注释,二是将resource\php8的目录添加到环境变量中。可以使用下面语句,制作成.bat文件,用户双击即可添加环境变量。
setx path /m "%path%;%~dp0resources\php8.0;"
后,实际测试,如果不想加环境变量,则必须关闭monitor进程,也不是因为monitor进程导致环境变量的问题,而是php.exe 后面在没有环境变量的环境下,就不能跟2个php文件,所以,在交付给客户的时候,必须关闭monitor进程
蓝奏云:
https://wwck.lanzouj.com/ixdp71i78aoj
我用蓝奏浏览器分享了[webman-electron-egg], 下载链接:https://wwp.lanzoup.com/iNK9R1l1xuqd , 你可以不限速下载哦
cool 这就很棒棒了
嘻嘻,谢谢,我已经用这个做了好几个客户端了,开发速度杠杠的
强
感谢老大捧场
点赞
666
支持支持,感觉还是前后端分离打包安全点,这样数据库配置也在客户端
用的是sqlite,客户端的数据,你用其他软件做的放在,也是在客户端呀
改了代码,要怎样重新生成exe呢?
exe就不需要重新生成呀,你的php代码是放在resourece\webman\下的
给楼主点赞
以后做桌面的话,可以尝试一下
感谢分享
这。。。
这是你自己业务的错误哦
我这边测试mkdir没问题
递归创建目录的话,你第三个参数要写true,不能省略的
呃,我下载下来就双击的,没有业务呢,难道跟我环境有关系
你本地测试可以?或者启动后,浏览器运行webman的地址测试
呃,运行测试地址后就可以了
可以发代码出来看看?
mkdir的话,如果是多级目录,如果第3个参数没有写,必须保证前面的目录存在,如果是要连续创建的话,第3个参数必须是true
我本地跑了也是这个错误,发现原因是没有D盘,所以创建不了目录,改了php.ini中的路径就可以了
哦哦,谢谢提醒,这个是跟我自带的php设置有关,我用的是phpenv,在php.ini中写死了应该
是这个原因 建议改成当前路径再发下
mac 可以支持吗
暂时还没支持,技术上支持很简单,就是没有mac可以测试
我有mac,可以出个文档吗
打包前的源码可以开源吗,我的mac上electron 安装好了
晚上回去私发你,留个邮箱
晚上我源码上传云吧
你可以先下载electron-egg,研究一下里面的javaServer那个插件,里面有关于mac的参考代码,稍微改一改就行
electron-egg 我之前也看过这个 看起来挺好用的,内置挺多东西
好的,谢谢
源码已发邮箱
谢谢
期待你的mac版本。建议可以修改我加的一个webman的插件,里面有todo的内容,修改修改应该就能用了
感谢大佬的分享
你好,请问这个地方怎么修改
windows 用户执行 php windows.php 启动就可以了
mac 用户启动webman 需要执行
我这个代码执行npm run dev 出现报错
另外,我node 的版本是v20.5.1,会有问题吗
electron-egg 的示例demo 可以跑起来
win 代码直接在mac 上运行会有空格或者回车字符串的问题,需要把no_moudle 删除重新安装依赖
起来了,但是好像验证码挂了
只要起来了,验证码应该问题不大的,刷新一下,或者,打开的时候,把那个devtools打开,关闭缓存调试
win7刚打开exe文件白屏,第二次打开还是白屏,第四次再打开正常。
作者就很棒
为啥我的win11一直报错,
我知道是为什么了,因为我之前开了webman的8787,端口占用了,那个wenman项目关了就好了
可以改端口的,server.php中
刚才切换到了demo分支,报了好几个npm包的错误,已经在github上提出issus了.
根本运行不起来,是我的问题吗
你可以下蓝奏云的我编译好的测试
我没有找到蓝奏云的地址
我找到蓝奏云的地址 了.
厉害呀,大佬能分享你源码吗
大佬 源码 git地址也分享下啊
是做了个嵌套 然后通过setting.json 修改配置及嵌套地址么?
大致看了egg的文档,应该可以参照egg-go 集成go的方式,集成webman.可以试一下,虽然我目前没计划去测试
可以,晚上分享
源码已发
感谢大佬 学习下
先支持一个
加油,顶起!
请问这个只支持sqlite 不支持MySQL吗?
https://wwp.lanzoup.com/iNK9R1l1xuqd 用这个源码接哪里操作?
需要先安装
进入目录 ./electron-egg/
npm install
再执行
npm run build-wz
打包?
还是直接 npm run build-wz打包?
可以查看electron egg官网的
NB👍,弥补php的GUI开发这块的短板
可以把打包的phar放进去吗
请问如何修改图标?
我将数据源放到了本地数据库,但是接口全部报红,
配置不正确
这个是只能本地用的,可以连接远程数据库吗
可以
这个能支持到windows教老的版本吗?例如win7 winXP sp2 sp3
不可以,这个取决于webman最低支持php7.4,而xp不支持php7.4
了解,非常感谢
大佬,啥时候能简单点安装 就好了 你这文档看了 都模糊啊
迷糊呀
牛X, 可以做软件UI用了
wa_uploads storage 字段可以为空,不然上传素材报错
启动不了,直接白屏
有安全方案吗? 这直接源码都给客户了