框架场景预设补齐:ThinkPHP / Laravel / Discuz(原来只有 WordPress)
- 保护方案页的「保护强度预设」以前只有 WordPress 一个场景,ThinkPHP / Laravel / Discuz 都得客户自己去「文件排除」页翻目录手填。现在三套都补齐, 而且排的是各自真正会踩雷的东西:ThinkPHP 的 `runtime` / `vendor`、 Laravel 的 `storage` / `bootstrap/cache` / `vendor` 与 Blade 模板 (正则 `^resources/views/.*\.blade\.php$`)、Discuz 的 `template` / `data` / `config` / `uc_server`。这三个框架的缓存与模板目录加密了反而跑不 起来(Blade 的 `@if`、Discuz 的 `{template}` 是模板伪指令),预设直接排掉。
- 排除规则改成"去重追加":以前套预设是整体覆盖,客户自己维护的排除清单 会被冲掉。现在只往里加,重复套用也不会越套越长。三个框架预设还会显式把 「兼容WordPress主题/插件」关掉——从 WP 预设切过来时不会把开关留在打开状态。
- 界面同步修好了:套完预设,「文件排除」页的目录 / 文件 / 正则 / 白名单 四个文本框以前根本不刷新(它们不是 `Variable`,走不到刷新那条路),客户 以为预设没生效、转头又手填一遍;现在当场同步。
- 选中即预览:下拉里选中一条,功能设置底部按钮栏会显示这套预设会怎么改 设置;点「应用」后显示"已应用:…"。说明按实际字宽量过,一行放得下,窗口 窄了自动截断——按钮栏在标签页之外,不会把「保护方案」页顶高一格。
- 新增 `tests/presets_check.py`(118 条):预设表本身(标签唯一、key 一致、 文案不含旧产品名)、追加语义(客户清单不丢、重复套用不膨胀、认不出的标签 一个字段都不改)、界面同步(含"说明一行放得下"的实测字宽断言),以及真机 验收——按每个框架预设跑一遍加密,被排除的文件必须原样复制、其余 PHP 必须真的变了样、过 `php -l` 且运行结果与原文件一致。已接进 `run_tests.bat` 与 `build_exe.bat` 闸门。
- README 与产品介绍补上预设对照表(这一功能以前在文档里一个字都没提)。