-
Notifications
You must be signed in to change notification settings - Fork 0
Build SaiAdmin
先确认项目属于已有兼容组合,完成 Composer 安装及普通 PHP 接口回归。使用 macOS Apple Silicon 或 Windows x64,进入 SaiAdmin 后端根目录(不是前端管理界面目录)。
webman-aot doctor
webman-aot build --profile=saiadmin
webman-aot verify --path=dist-aot安装引导中已完成自动构建与校验时,可直接进入下一步。独立命令的成功判断同Webman 构建;部署时整个 dist-aot/ 一起复制,并配置外置 .env,见部署到 Linux。验证码、登录、用户信息与权限拒绝须在自己的目标环境验收;详细隔离测试见Linux 进阶验收。
SaiAdmin 6.1.5 的 plugin/saiadmin/exception/SystemException.php 使用
Throwable $previous = null。普通 PHP 8.4 在 E_ALL 下首次触及权限
拒绝时会发出隐式可空参数弃用警告,项目异常处理器可能把它转为
业务 500。这不是 AOT 编译失败。等价修正是:
public function __construct($message, $code = 400, ?Throwable $previous = null)该改动已在隔离的普通 PHP 8.4.18 回归副本中验证:保留原始
config/app.php 的 E_ALL,隔离文件缓存后,验证码、登录、
用户信息和权限拒绝四条路径均通过;一次性数据库及账号已清理,
隔离副本的源码已恢复。工具不会擅自修改目标项目。
回归时应保留 E_ALL,不要靠关闭弃用警告掩盖这个问题。
若项目已做此修复,AOT 适配规则接受原始和已修复的两种明确写法;
缺失、重复或混用仍会报错。SaiAdmin 安装期 vendor 模板与实际
plugin/saiadmin/ 副本若不一致,构建仍会拒绝静默排除模板;
应在项目的依赖补丁或上游版本中维护一致性。
新增插件、更换依赖或改变业务后重新构建并回归接口。编译规则与新代码约束见AOT 适配原理;不能把 ELF 生成视为业务成功。