开源技术小栈说明:感谢来自于
🚀 webman技术交流#4群天方客大佬的分享!
开源技术小栈2025.4.13 NativePHP桌面版V1.0正式发布
NativePHP 是一种通过将 PHP 代码编译成原生二进制代码,使开发者能够使用 PHP 语言来构建原生应用程序。与传统的 PHP 脚本不同,NativePHP 应用程序可以直接在操作系统的本机环境中运行,无需依赖 Web 服务器或解释器。

vendor/nativephp/resources/js 目录下安装 electron 依赖。若 npm 环境不佳,建议使用魔法网络或代理镜像。npm run dev 启动 node 服务。查看 package.json 文件可知,此操作实际执行了 node php.js 和 electron-vite dev --watch。ENV 环境,其中包含 PHP 的二进制文件压缩包路径、PHP 版本信息等内容。php.js 根据系统环境及 ENV 提供的 PHP 二进制压缩包路径,解压并将文件放置到 vendor/nativephp/resources/js/resources/php。electron-vite dev 通过 electron 的插件生态启动 electron 客户端。插件路径为 vendor/nativephp/resources/js/electron-plugin。electron,同时封装并启动 webserve,为后续的 PHP 服务调用提供底层 API,具体逻辑在 vendor/nativephp/resources/js/electron-plugin/src/index.ts。electron 客户端,待其初始化完成后,利用提供的 php 二进制文件执行 php artisan native:config,获取如设置内存上限等 php ini 需要的配置。node 端 API 服务,桥接提供给 PHP 端的 API,以便操作原生功能,如最大化窗口、启动新窗口、进程等。php artisan serve 并附带 env 环境,尤其是 NATIVEPHP_RUNNING 这个环境变量。启动后,php 服务会判断是否为专门为 electron 启动的,并注册特定路由及服务等。node 服务提供桥接,具体路径在 vendor/nativephp/larave/routes/api.php。electron activate 第一次事件运行时,发送一次 http 请求到 php 服务端(由第 10 步骤注册的路由 /_native/api/booted),告知 php 服务端 electron 已启动完毕,可进行初始化工作。App\Providers\NativeAppServiceProvider 启动服务,调用代码为 Window::open(),该服务仅执行一次。Window::open() 的本质是通过 Http 调用第 8 点中 node 端提供的 api 服务,node 端接到请求后打开窗口。