该笔记针对 windows 环境
php-8.2.19-nts-Win32-vs16-x64
)->解压->配置好ini(不会自行百度)->开启FFI拓展->配置好环境运行Enigma Virtual Box
应用
新增->添加文件夹[递归] :选择你的PHP文件夹,这里我选择的是C:\environment\php-8.2.19-nts
(请根据你的实际情况选择)
文件选项:勾选->压缩文件和勾选->启动文件虚拟化
执行封包(你会拿到一个单文件),这里我的是php-win_boxed.exe
新建文件夹php-webui
(根据你的实际情况新建)
进入文件夹php-webui
(根据你的实际情况新建)
执行composer(这里我选择 webui的php桌面拓展)
composer require kingbes/webui
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>phpwebui</title>
<!-- You must add webu.js; otherwise, the interaction cannot be performed -->
<script src="webui.js"></script>
</head>
<body>
<p>hello world for php webui</p>
<button onclick="btn()">btn</button>
<script>
function btn() {
hello('hello').then(function (res) {
console.log(res)
})
}
</script>
</body>
</html>
index.php
<?php
require "./vendor/autoload.php";
use Kingbes\Webui;
use Kingbes\JavaScript;
// 实例
$Webui = new Webui;
// html字符串
$html = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "index.html");
// 创建一个窗口
$window = $Webui->newWindow();
// 绑定js函数
$bind = $Webui->bind($window, "hello", function ($event, JavaScript $js) {
// 获取第一个参数为字符串
$arg_one = $js->getString($event);
var_dump($arg_one);
// 返回字符串
$js->returnString($event, "nihao");
});
// 显示窗口
$Webui->show($window, $html);
// 等待
$Webui->wait();
// 释放所有
$Webui->clean();
php-win_boxed.exe
文件复制到php-webui
文件夹中执行指令(测试查看是否成功)
.\php-win_boxed.exe index.php
执行应用 Inno Setup
php-win_boxed.exe
文件,我这里选择是C:\project\php\php-webui\php-win.exe
)->添加文件夹(选择你新建的 php-webui
,包含你的子文件)->下一步[!注意] 接下来会弹出 是否立即编译脚本 ,这时候选择否
然后修改一下代码
[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppExeName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; Parameters:"index.php";
再 编译
即可
假设你要添加自己的 ico图标
你就把图标文件添加到你的php-webui
文件夹中
然后修改以下代码(我的ico图标文件夹是favicon.ico
,根据你的实际情况)
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppExeName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; Parameters:"index.php"; IconFilename:"{app}\favicon.ico"
这个是我打包好的 demo
拿去玩吧
通过网盘分享的文件:setupPHPWebUi.exe
链接: https://pan.baidu.com/s/1fC7Sd1Lnt-zio41s5jgJAQ?pwd=w5xc 提取码: w5xc
本来想用
static-php-cli
的,可以压缩得更小,且还有micro
来打包,但static-php-cli
搭建起来并不那么顺利,所以还是用Enigma Virtual Box
直接给PHP环境给封包单文件这里有编译好的,直接下载 https://github.com/crazywhalecc/static-php-cli/actions/runs/9169689696 ,或者我编译这个扩展多一点 https://github.com/HongChenLuYuan/static-php-cli/actions/runs/9884097668
👍。这个 webui 库需要ffi拓展,编译的时候需要加上哦
点赞,支持
数据库 使用mysql嘛?
用sqlite也行,用tp的orm可以连接 think-orm
PHP真是厉害啊