tinywan / webman-typephp
TypePHP AOT native binary compiler and packager plugin for Webman
v0.0.9
2026-09-05 17:32 UTC
Requires
- php: >=8.4 <8.6
- symfony/process: ^7.0 || ^8.0
- webman/console: ^1.0||^2.0
- workerman/webman-framework: ^1.5.4||^2.0
Requires (Dev)
- carthage-software/mago: ^1.5
- pestphp/pest: ^4.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Webman TypePHP AOT 构建插件
为 Webman 注入 TypePHP 原生 AOT 编译能力,将 Webman 应用编译打包为高性能原生可移植目录 (portable-dir)
📖 简介
tinywan/webman-typephp 是专为 Webman 高性能框架打造的官方标准基础插件。基于 TypePHP(Swoole 研发的 PHP AOT 编译器),将 Webman 业务源码直接转译为原生机器码 ELF 可执行程序,并自动化装配包含运行时配置、静态资源及视图模板的独立发布目录。
内置配套的预编译 Docker 构建镜像,开发者宿主机无需安装任何 C++、Clang 或底层编译工具链,即可在本地一键完成生产发布包的编译组装。
🌟 核心特性
- ⚡ 开箱即用:零环境心智负担,所有 C++ 编译器和底层工具链全部由 Docker 镜像内聚提供。
- 📦 可移植目录构建:自动化输出包含
webman-server二进制、build-manifest.json元数据、配置与视图的dist/独立运行目录。 - 🤖 自动化依赖生成:自动分析当前 Webman 项目结构与依赖,动态生成 AOT 专属入口
main.php与project.linux.yml。 - 🛡️ 生产级安全防护:输出目录防覆盖保护机制(需显式
--force),Docker 调度执行严格采用安全参数数组,坚决杜绝命令注入。 - ☁️ 一键 CI/CD 接入:内置
php webman typephp:init-ci,秒级生成 GitHub Actions 自动化构建工作流。
🚀 快速开始
1. 安装插件
在现有的 Webman 项目中执行 Composer 安装:
composer require tinywan/webman-typephp --dev
2. 环境自检
检查当前宿主机环境是否满足基本要求(仅需 PHP 与 Docker):
php webman typephp:doctor
3. 一键打包编译
执行打包构建命令:
# 默认编译构建 php webman typephp:package # 若输出目录已存在,使用 --force 覆盖 php webman typephp:package --force
4. 产物目录结构
编译完成后,项目根目录将生成标准的 dist/ 目录:
dist/
├── webman-server # AOT 编译生成的原生机器码二进制程序
├── build-manifest.json # 构建元数据清单(记录输入摘要、镜像版本与编译时间)
├── config/ # 运行时业务配置
├── public/ # 静态静态资源托管
└── app/view/ # 视图模板文件
5. 启动运行
将 dist/ 目录拷贝至任意兼容的 Linux x86_64 服务器(无需在服务器安装 PHP):
cd dist # 前台调试启动 ./webman-server start # 守护进程(后台)启动 ./webman-server start -d # 查看运行状态与停止 ./webman-server status ./webman-server stop ./webman-server restart
🛠️ 命令列表
| 命令 | 选项 | 说明 |
|---|---|---|
php webman typephp:package |
--force, -f--image=...--output-dir=...--output-name=... |
调用 Docker 构建镜像将当前 Webman 项目编译打包为可移植目录 |
php webman typephp:doctor |
无 | 自检本地环境依赖(PHP 8.4~8.5 约束、Docker 运行状态等) |
php webman typephp:init-ci |
--force, -f--path=... |
一键在 .github/workflows/ 生成自动化构建与发布工作流 |
⚙️ 配置文件
安装插件后,配置文件自动发布于 config/plugin/tinywan/typephp/app.php:
return [ 'enable' => true, // Docker 编译环境配置 'docker' => [ 'enabled' => true, 'image' => 'tinywan/typephp-webman-builder:alpine', ], // 默认输出配置 'build' => [ 'output_name' => 'webman-server', 'dist_dir' => 'dist', 'clean_build' => true, ], // 编译忽略项 'ignore' => [ 'config', 'public', 'runtime', 'app/view', // ... ] ];
🧪 代码质量与测试
本插件遵循现代 PHP 规范,采用 Mago 与 Pest 保障工程质量:
composer test # 运行 Pest 单元测试 composer format # 代码格式化 (Mago) composer lint # 代码规范检查 (Mago) composer analyze # 静态代码分析 (Mago) composer check # 全量质量检测
如果这个项目对你有帮助,欢迎 ⭐️ Star 支持!
Made with ❤️ by Tinywan · MIT License