首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >NativePHP桌面版篇〡服务启动运行流程图

NativePHP桌面版篇〡服务启动运行流程图

作者头像
Tinywan
发布2025-04-21 00:05:32
发布2025-04-21 00:05:32
4160
举报
文章被收录于专栏:开源技术小栈开源技术小栈

开源技术小栈说明:感谢来自于🚀 webman技术交流#4天方客大佬的分享!

概述

开源技术小栈2025.4.13 NativePHP桌面版V1.0正式发布

NativePHP 是一种通过将 PHP 代码编译成原生二进制代码,使开发者能够使用 PHP 语言来构建原生应用程序。与传统的 PHP 脚本不同,NativePHP 应用程序可以直接在操作系统的本机环境中运行,无需依赖 Web 服务器或解释器。

启动运行流程

Step1、依赖安装与服务启动

  1. vendor/nativephp/resources/js 目录下安装 electron 依赖。若 npm 环境不佳,建议使用魔法网络或代理镜像。
  2. 执行 npm run dev 启动 node 服务。查看 package.json 文件可知,此操作实际执行了 node php.jselectron-vite dev --watch

Step2、环境注入与 PHP 处理

  1. 在启动前注入 ENV 环境,其中包含 PHP 的二进制文件压缩包路径、PHP 版本信息等内容。
  2. php.js 根据系统环境及 ENV 提供的 PHP 二进制压缩包路径,解压并将文件放置到 vendor/nativephp/resources/js/resources/php

Step3、Electron 客户端相关操作

  1. electron-vite dev 通过 electron 的插件生态启动 electron 客户端。插件路径为 vendor/nativephp/resources/js/electron-plugin
  2. 插件执行时构建并封装整个 electron,同时封装并启动 webserve,为后续的 PHP 服务调用提供底层 API,具体逻辑在 vendor/nativephp/resources/js/electron-plugin/src/index.ts
  3. 初始化 electron 客户端,待其初始化完成后,利用提供的 php 二进制文件执行 php artisan native:config,获取如设置内存上限等 php ini 需要的配置。

Step4、API 服务桥接与 PHP 服务启动

  1. 启动 node 端 API 服务,桥接提供给 PHP 端的 API,以便操作原生功能,如最大化窗口、启动新窗口、进程等。
  2. 启动 PHP 服务,调用 php artisan serve 并附带 env 环境,尤其是 NATIVEPHP_RUNNING 这个环境变量。启动后,php 服务会判断是否为专门为 electron 启动的,并注册特定路由及服务等。

Step5、路由注册与事件处理

  1. php 服务端启动后会注册 3 个核心路由,用于为 node 服务提供桥接,具体路径在 vendor/nativephp/larave/routes/api.php
  2. 在 php 服务启动后,注册 js 端的事件,如打开窗口事件、打开文件事件等。

Step6、Electron 与 PHP 服务交互

  1. electron activate 第一次事件运行时,发送一次 http 请求到 php 服务端(由第 10 步骤注册的路由 /_native/api/booted),告知 php 服务端 electron 已启动完毕,可进行初始化工作。
  2. php 服务接收到请求后,调用 App\Providers\NativeAppServiceProvider 启动服务,调用代码为 Window::open(),该服务仅执行一次。
  3. Window::open() 的本质是通过 Http 调用第 8 点中 node 端提供的 api 服务,node 端接到请求后打开窗口。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 启动运行流程
    • Step1、依赖安装与服务启动
    • Step2、环境注入与 PHP 处理
    • Step3、Electron 客户端相关操作
    • Step4、API 服务桥接与 PHP 服务启动
    • Step5、路由注册与事件处理
    • Step6、Electron 与 PHP 服务交互
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档