今天作者给大家盘点一下近些年PHP在实现桌面客户端方面的项目。
PHP-GTK
PHP-GTK是2001年3月创立,是PHP的一个扩展,实现了与GTK+的绑定,提供面向对象的接口,极大地简化了客户端跨平台 GUI 应用程序的编写。
它是PHP语言和GTK库的一个纽带,GTK是一个桌面环境的GUI库,可以实现窗口、按钮、输入框等组件,通过本扩展可以使用PHP语言写带有 GUI(图形用户界面)的客户端应用程序。当初创建这个项目的意义,有一部分是为了证明PHP是一个强大的编程语言。PHP的大佬确实潇洒。
PHP-QT
PHP-Qt 是 PHP5 的扩展,旨在使用 Qt 工具包编写软件。 它为 Qt4 框架提供了面向对象的接口,并允许使用 PHP 语言编写 Qt 应用程序。 他的代码和效果如下:
WinBinder
WinBinder 是 PHP 的一个开源扩展,它让 PHP 程序员能轻松构建原生 Windows 应用程序,以最小的努力快速获得有价值的成果。借助 PHP 的强大和灵活性,即使是只有几十行代码的简短脚本也能生成有用的程序。
项目仅支持5.x系列,目前也有分支支持7.x和8.x系列。
这是一个扩展,安装之后,就实现GUI界面,也可以调用windows的众多能力,比如播放音乐等。
项目提供了大量的案例代码:
PHPSciter
PHPSciter是一个PHP的扩展,将Sciter集成到PHP中,这样就可以使用PHP来开发桌面应用。对于广大的PHPer来说,之前B/S架构下面的开发经验基本上可以移植到Sciter下面来。这样可以充分的享受PHP已有的各种类库,快速的开发桌面应用工具。
该项目是青岛龙之言软件有限责任公司出品,由国内著名的Swoole团队和禅道团队合资成立。
安装后运行如下代码,同时会加载其他案例源码:
<?php
$oSciter = new PHPSciter();
$oSciter->setResourcePath('file://' . __DIR__ . '/res/');
$oSciter->setWindowFrame(100, 100, 100 + 500 + 1, 100 + 500 + 1);
$oSciter->setWindowTitle('hello');
$oSciter->loadFile('index.php');
$oSciter->setOption(PHPSciter::SCITER_SET_SCRIPT_RUNTIME_FEATURES,PHPSciter::ALLOW_FILE_IO | PHPSciter::ALLOW_SOCKET_IO | PHPSciter::ALLOW_EVAL |PHPSciter::ALLOW_SYSINFO);
$oSciter->run(PHPSciter::SW_TITLEBAR | PHPSciter::SW_RESIZEABLE | PHPSciter::SW_MAIN | PHPSciter::SW_ENABLE_DEBUG|PHPSciter::SW_CONTROLS);
?>
能够得到这样的界面:
运行机制
1. 启动Sciter窗口,加载index.php
2. index.php里面通过html的方式定义了若干的元素,并绑定了其click事件的响应函数。
3. 当事件触发后,sciter引擎会将click事件的调用传给php的解释引擎。
4. 在callback里面通过PHPSciter::defineFunction()方法定义了响应函数。
5. PHP引擎调用该函数,并将结果返回。
6. 前端的JS更新页面元素。
PHP-GUI
这个项目是 PHP-GUI,一个允许使用 PHP 创建图形用户界面的库。它的主要特点包括:
1. 使用 PHP 编写桌面应用程序
2. 跨平台支持(Windows、Linux、Mac)
3. 基于 Lazarus 和 Free Pascal 构建
4. 使用 PHP 的事件驱动编程模型
5. 支持各种 UI 组件如按钮、标签、输入框等
这个库让 PHP 开发者能够创建本地桌面应用,而不需要学习其他语言。它通过 PHP 进程与一个用 Pascal 编写的后台程序通信来实现界面渲染。
PHP Desktop
PHP Desktop 是一个开源项目,允许使用 PHP、HTML5、JavaScript 和 SQLite 等 Web 技术开发原生桌面 GUI 应用程序。它类似于 PHP 的 Electron,可以将 PHP Web 应用和 CLI 工具轻松转换为桌面应用。它嵌入了 Web 浏览器、Web 服务器和 PHP 解释器,并支持常见的 PHP 框架。你可以使用 Inno Setup 创建独立的可执行文件进行分发,并使用 PHP 编码器保护 PHP 源代码。PHP Desktop 具有稳定性好、无内存泄漏等优点,并且可以免费用于商业用途。
这是一个非常火爆的项目,目前有2.8K的star,他只是让你的php代码在一个本地桌面环境中运行。无需额外的门槛。
下面这个产品cryptoGlance 就是使用该项目打造的,这个工具是一个独立的或基于PHP的挖矿监控和管理平台,具有响应式界面和实时数据更新。它提供以下主要功能:
1.矿机/ASIC管理:监控和管理多个矿机,远程切换矿池、重启矿机,调整矿池优先级,重置矿机统计信息,以及在BITMAIN ASIC故障时自动重启。
2.矿池监控:实时跟踪矿池状态(支持MPOS和部分其他矿池)。
3.钱包/余额:管理多个钱包地址,汇总余额,并支持多种加密货币和法币转换。
NativePHP
NativePHP是一个新兴框架,旨在帮助PHP开发者快速构建功能丰富的原生桌面应用。它利用开发者已掌握的PHP、HTML、CSS和JavaScript技术,降低了学习门槛。NativePHP简化了跨平台应用分发流程,让PHP开发者能更便捷地创建真正的原生应用。
NativePHP本质上是以下几个要素的结合:一组方便的类,用于与宿主操作系统的各种功能进行交互;一套用于构建和打包原生应用程序的工具;以及一个静态PHP运行时,让你的应用可以在任何用户的设备上运行,无需用户进行任何配置。
NativePHP并非一个需要学习的全新框架,而是构建在Laravel生态系统之上。使用NativePHP前,需要熟悉使用Laravel构建Web应用。它也不是一个GUI框架,不限制你构建应用的方式,可以选择任何UI工具集,例如React、Vue、Livewire、Inertia,甚至纯HTML和CSS。NativePHP使用的就是标准的PHP,而不是新的PHP分支,也无需安装额外的PHP扩展,只需通过Composer安装即可使用。
小结
除了以上提到项目,PHP还有很多解决方案,大多数的方案并没有流行开,但是PHP Desktop 和NativePHP非常的强大。后面作者会做一个针对PHP的GUI解决方案的专题,详细测评每一个方案。欢迎大家关注作者。
实际上,NativePHP目前已经有了移动端解决方案,NativePHP for Mobile 。
NativePHP for Mobile是一个首创的库,它允许PHP开发者在各种移动设备上原生运行PHP应用程序,而无需Web服务器。它将静态编译的PHP作为可嵌入的C库,结合Laravel的灵活性和各平台丰富的原生API,从而可以使用Laravel的强大功能和便利性,构建高性能的PHP原生移动应用程序。构建美观的、本地优先的iOS和Android应用从未如此简单。后面作者会专门做一个详细介绍,欢迎大家关注。
原文标题: 盘点一下这些年PHP在桌面应用方面的解决方案
原文地址: https://phpreturn.com/index/a68188c9ba1394.html
原文平台: PHP武器库
版权声明: 本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。