DYNAMIC_EXEMPT
DYNAMIC_EXEMPT = ['mail.scene.register', 'mail.scene.repass']
动态键豁免(运行时拼装/注册表驱动,源码无字面量)
配置体系对应
被测对象:配置定义表 ↔ 代码消费点 双向闭环 + 分组前缀约定 + 联动推导 守护约定:定义键 ⊆ 源码消费 ∪ 豁免(前端消费 ui.* 等);config_db 消费键 ⊆ 定义; 分组前缀与命名约定一致;端口→加密/jwt.ttl 派生单测。
LARAVEL_KEY_PREFIXES = ['jwt.', 'session.', 'cors.', 'app.', 'database.', 'filesystems.', 'logging.', 'scramble.', 'services.', 'mail.default', 'mail.mailers.', 'mail.from.', 'queue.default', 'queue.connections.', 'cache.default', 'cache.stores.', 'cache.prefix', 'auth.password', 'auth.password_timeout']
Laravel 静态配置键前缀(env 层,非 DB 定义,消费 `config('...')` 不在此校验)
GROUP_PREFIXES = ['SECURITY' => ['security.'], 'AUTH' => ['auth.'], 'LOG' => ['log.'], 'CACHE' => ['cache.'], 'QUEUE' => ['queue.'], 'EMAIL' => ['mail.', 'queue.mail_sync_auth'], 'FILE' => ['file.'], 'SITE' => ['site.'], 'CAPTCHA' => ['captcha.'], 'SMS' => ['sms.'], 'TEMPLATE' => ['template.'], 'UI' => ['ui.'], 'MAIL_SCENE' => ['mail.scene.'], 'USER' => ['user.'], 'ORG' => ['org.'], 'REGION' => ['region.'], 'MESSAGE' => ['message.']]
分组 → 允许的键前缀(配置体系命名约定)
buildCacheRegistry(array $items) : void
建缓存注册表最小 schema(td_sys_cache)并灌入注册项。
测试跑 sqlite :memory:,生产迁移含 PostgreSQL 专属 DDL 跑不通(DataScopeServiceTest 同因自建 schema); 而 CacheManager::registry() 现已从数据库表读取——凡走注册表的测试(remember/get/key/失效推导) 必须在 setUp 先调用本方法,否则注册表为空、remember 未登记名会走「自动登记」路径。
| array | $items |