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 自动化构建工作流。
在现有的 Webman 项目中执行 Composer 安装:
composer require tinywan/webman-typephp --dev检查当前宿主机环境是否满足基本要求(仅需 PHP 与 Docker):
php webman typephp:doctor执行打包构建命令:
# 默认编译构建
php webman typephp:package
# 若输出目录已存在,使用 --force 覆盖
php webman typephp:package --force编译完成后,项目根目录将生成标准的 dist/ 目录:
dist/
├── webman-server # AOT 编译生成的原生机器码二进制程序
├── build-manifest.json # 构建元数据清单(记录输入摘要、镜像版本与编译时间)
├── config/ # 运行时业务配置
├── public/ # 静态静态资源托管
└── app/view/ # 视图模板文件
将 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