szopen
V2EX  ›  PHP

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

  •  
  •   szopen · Sep 17, 2019 · 8827 views
    This topic created in 2430 days ago, the information mentioned may be changed or developed.

    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 下的截图 截图

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

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

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

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

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

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

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

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

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

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

    https://github.com/gabrielrcouto/php-gui
    szopen
        20
    szopen  
    OP
       Sep 21, 2019
    @n37r06u3 支持 linux,windows,macos
    @TangMonk 可以通过 opcache 编译功能,然后配置 preload,让 php 默认调入口文件
    @TangMonk php-libui 与其原理不一样,我写这个是通过 FFI 进行 C/C++ API 调用实现; php-gui 的实现原理是 PHP 通过管道与二进制程序进行通信实现的(原理大概与调 redis 类似)
    pinews
        21
    pinews  
       Oct 8, 2019
    我知道 gui 是什么意思,但是你这个软件到底是什么意思啊?怎么用,有中文说明吗?
    back0893
        22
    back0893  
       Oct 17, 2019
    类似 py 的 tk 东西?
    szopen
        23
    szopen  
    OP
       Oct 18, 2019
    @pinews 还没有时间写文档,怎么用你现在只能看代码库中的例子以及了解一下 FFI
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1136 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 18:09 · PVG 02:09 · LAX 11:09 · JFK 14:09
    ♥ Do have faith in what you're doing.