PHP GUI 开发方案:利用 PHP 7.4 在激活 FFI 的情况下使用 libui 进行 GUI 程序开发

2019-09-17 09:12:59 +08:00
 szopen

libui PHP 绑定 https://github.com/chopins/php-libui, ( php 的 pecl ui 库存在版本兼容问题)

PHP 7.4 win 编译版本: https://windows.php.net/qa/#php-7.4-nts-vc15-x64

window 下的截图

7941 次点击
所在节点    PHP
23 条回复
assad
2019-09-17 09:51:14 +08:00
好东西啊,支持一个先
ben1024
2019-09-17 09:55:28 +08:00
php gui 样式和简易程度还是有要提高的点
cmdOptionKana
2019-09-17 10:00:27 +08:00
借楼问一下 PHP 怎么把程序启动后出现在系统托盘,我想点击系统托盘的图标弹出个简单的菜单做些简单操作,实际上是开个本地服务器,通过浏览器访问,用网页前端做 GUI 界面。
ben1024
2019-09-17 10:09:57 +08:00
@cmdOptionKana 可以通过 GUI 操作配置,PHP 服务监听配置作出响应,服务本身可以通过 Apache 或 PHP -S 开启
harde
2019-09-17 10:22:27 +08:00
不是太能理解这种项目存在的意义。。。。
qhxin
2019-09-17 10:39:56 +08:00
@harde 写上位机程序挺方便
HiCode
2019-09-17 10:42:46 +08:00
@cmdOptionKana 你这种需求,要不通过 FFI 封装 windows api 实现,要不只能等 libui 家什么时候增加系统托盘的功能。
salamanderMH
2019-09-17 11:14:30 +08:00
支持,但是 C#做的足够好了
sagaxu
2019-09-17 11:26:40 +08:00
@qhxin 用 wpf 不是更方便吗?
szopen
2019-09-17 11:45:44 +08:00
@harde 这个种需求可以帮助 PHP 开发者将原来的 web 管理后台之类的弄成桌面版本,还有一些 PHP 办公类也可以弄成桌面版本,现有的人力和代码就弄了,所以这个成本是很低的。需求肯定是有的
HiCode
2019-09-17 11:48:01 +08:00
凑热闹打个广告啊:

https://gitee.com/haimadongli001/php-iup

这是另外一个封装 iup 的 php ui 库。

iup 框架在保证足够小的同时,又包含足够多的功能,系统托盘,浏览器组件,编辑器组件(Scintilla)这些都有;

同时还有功能强大的 cd 和 im 两个库可以处理图片;

比 wxPHP 简单,比 libui 功能更丰富;
harde
2019-09-17 11:58:43 +08:00
@szopen 从我个人角度,觉得还是有点伪需求,本身就 PHP 来说,优秀的 PHP 程序员就很难找,在这基础上再去做 UI。
还不如找.NET 的来重做,用人成本和维护成本都低。再不济用 Electron 套壳我觉得也比用 PHP 构建强。
当然,都是建立在企业用人与维护成本方面考虑~
HiCode
2019-09-17 12:04:29 +08:00
@harde 如果能弄成 delphi 那样的 RAD 工具,界面靠拖曳,再加上 php 的简单和强大,基本可以秒杀很多“小需求”。

有时候其他岗位一些复杂繁琐的“手动”操作,就可以用这样的工具来提高生产力。

.NET 确实是一个不错的选择,奈何国内从业者相对少。

用 PHP 做 GUI,本质上还是希望能够更好挖掘 php 开发者这个人才宝藏!
n37r06u3
2019-09-17 12:04:50 +08:00
可以在 linux 和 macos 里用吗
ben1024
2019-09-17 12:20:27 +08:00
还可以用 AAuto 快手编程 [哈哈]
TangMonk
2019-09-17 12:26:47 +08:00
可以编译成可执行文件吗?正好有这个需求
ochatokori
2019-09-17 12:27:11 +08:00
那为什么不用 electron,php 安心写接口呢
HiCode
2019-09-17 13:55:55 +08:00
@ochatokori 因为还有很多人用的电脑很垃圾啊,你用垃圾电脑打开 electron 就知道为什么了。

写软件有时候时给其他人用的,不是每个人的电脑都特别棒!
TangMonk
2019-09-18 13:07:57 +08:00
和这个相比有什么明显优势吗?

https://github.com/gabrielrcouto/php-gui
szopen
2019-09-21 22:16:45 +08:00
@n37r06u3 支持 linux,windows,macos
@TangMonk 可以通过 opcache 编译功能,然后配置 preload,让 php 默认调入口文件
@TangMonk php-libui 与其原理不一样,我写这个是通过 FFI 进行 C/C++ API 调用实现; php-gui 的实现原理是 PHP 通过管道与二进制程序进行通信实现的(原理大概与调 redis 类似)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/601376

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX