kingbes / webui
webui 绑定 php 实现跨平台桌面应用
v0.0.7
2025-05-23 09:15 UTC
Requires
- php: >=8.1.0
- ext-ffi: *
- ffi/work-directory: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
WebUI for PHP
Use any web browser or WebView as GUI, with your preferred language in the backend and modern web technologies in the frontend, all in a lightweight portable library.
composer
composer require kingbes/webui
| require | |
|---|---|
| PHP | 8.1+ |
| FFI | * |
| Windows-x64 | true |
| Linux-x64 | true |
| Linux-arm | To be tested |
| Linux-arm64 | To be tested |
| MacOs-x64 | To be tested |
| MacOs-arm64 | To be tested |
example
- Example I
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <!-- You must add webu.js; otherwise, the interaction cannot be performed --> <script src="webui.js"></script> </head> <body> <button onclick="btn()">asd</button> <script> function btn() { hello('hello').then(function (res) { console.log(res) }) } </script> </body> </html>
index.php
require "./vendor/autoload.php"; use Kingbes\Webui; use Kingbes\JavaScript; $Webui = new Webui; $html = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "index.html"); $window = $Webui->newWindow(); $bind = $Webui->bind($window, "hello", function ($event, JavaScript $js) { // Gets the first argument as a string $arg_one = $js->getString($event); var_dump($arg_one); // return string $js->returnString($event, "nihao"); }); $Webui->show($window, $html); $Webui->wait(); $Webui->clean();
Various usage instructions
WebuiWebui classJavaScriptUsed to interact with js bindingsWrapperWrappers that wrap the entire interaction, etcCobjWrappers, which wrap the entire interaction with other C object classes, some functions may be required
