Releases
v1.4.0
Compare
Sorry, something went wrong.
No results found
新增
Yii2 适配 :PosterComponent(yii\base\Component)经魔术 getter 暴露 Yii::$app->poster->captcha / ->builder;Bootstrap 实现 BootstrapInterface,把 CaptchaManager 注册进 Yii::$container,控制器可直接构造注入
配置经 @app 别名定位而非 cwd —— php-fpm 下 cwd 常是 web/,会让应用自己的 config/poster.php 被静默忽略、回落包内默认值
getBuilder() 每次返回新实例(PosterBuilder 有状态,width()/add() 会累积),Bootstrap 因此故意不注册它
Yii3 适配 :composer.json 声明 extra.config-plugin,装包即由 yiisoft/config 自动装配 config/params.php 与 config/di.php,无需手工接线
容器只放无状态服务:StorageInterface 与两个工厂。图像驱动 / CaptchaManager / PosterBuilder 一律不进容器 —— yiisoft/di 只管理共享实例,而 GdDriver 持有 $resource、ImagickDriver 持有 $imagick,共享后一次渲染会覆盖另一次的画布,RoadRunner / Swoole 常驻下还会跨请求残留。此处对齐 Hyperf 适配器既有的无状态工厂写法
config/params.php 只作覆盖层(默认空数组):默认值仍只有 config/poster.php 一个来源,避免字体路径、click_words 词表出现双份真相
storage=cache 时从容器取 Psr\SimpleCache\CacheInterface 注入池,对齐 Laravel 适配器
框架适配由 4 个增至 6 个 :Laravel / ThinkPHP / Webman / Hyperf / Yii2 / Yii3
文档
README.md 与 README_EN.md 增补 Yii2 / Yii3 框架集成章节与配置说明
12 种语言的本地化 README 同步(各 +55/-5,改动形状一致),13 种语言的架构图与功能图重新生成
测试
新增 tests/Adapters/,沿用仓库「只测不依赖框架的部分」的约定:Yii3 的 di.php / params.php 本身是纯数组 + 闭包,可脱离 yiisoft/config 真跑;Yii2 侧用带 class_exists 守卫的最小 stub 验证配置定位与 getter
含一条回归护栏:若有状态服务被注册进容器,测试立即失败(已做变异验证,确认它真会拦住)
顺带修复
图表生成器的接口层框位此前写死为 5 个($x = 64 + $i * 186),框架数增至 6 个时第 7 个框右缘算到 1348 而画布只有 1040 —— Yii2 / Yii3 会被切在画布外,且不产生任何警告。改为按最小框宽折行,N=5 时公式精确退化为原版式;已用「新生成器 + 改造前文案」跑出与已提交 SVG 逐字节一致,证明对既有版式零影响
You can’t perform that action at this time.