PHP GUI 开发方案:利用 PHP 7.4 在激活 FFI 的情况下使用 libui 进行 GUI 程序开发 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
szopen
V2EX    PHP

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

  •  
  •   szopen 2019-09-17 09:12:59 +08:00 8402 次点击
    这是一个创建于 2218 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    window 下的截图 截图

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

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

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

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

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

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

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

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

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

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

    https://github.com/gabrielrcouto/php-gui
    szopen
        20
    szopen  
    OP
       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 类似)
    pinews
        21
    pinews  
       2019-10-08 00:31:48 +08:00
    我知道 gui 是什么意思,但是你这个软件到底是什么意思啊?怎么用,有中文说明吗?
    back0893
        22
    back0893  
       2019-10-17 22:28:53 +08:00
    类似 py 的 tk 东西?
    szopen
        23
    szopen  
    OP
       2019-10-18 08:38:58 +08:00
    @pinews 还没有时间写文档,怎么用你现在只能看代码库中的例子以及了解一下 FFI
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3304 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:47 PVG 19:47 LAX 04:47 JFK 07:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86