\App\ProvidersAppServiceProvider

应用服务提供者

职责:应用装配——注册辅助函数(register 阶段)、启动期全局行为(boot 阶段): 模型事件缓存自动失效、PostgreSQL schema 自举、健康检查实检、 API/模板渲染限流、API 文档增强。 其中「模型事件缓存失效」是缓存治理链路的自动触发端,依赖注册表驱动,红线机制在此装配。

┌────────────────── 分区导航(按此顺序阅读)──────────────────┐ 分区 1 · 服务注册 register 分区 2 · 启动装配 boot 分区 3 · 内部辅助·缓存失效 listenModelEvents / autoInvalidate 分区 4 · 内部辅助·schema 自举 schemaToEnsure / ensureSchema └────────────────────────────────────────────────────────────┘

Summary

Methods
Properties
Constants
register()
boot()
schemaToEnsure()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
listenModelEvents()
autoInvalidate()
ensureSchema()
No private properties found
N/A

Methods

register()

register() : void

boot()

boot() : void

schemaToEnsure()

schemaToEnsure() : ?string

待确保的 PostgreSQL schema 名:默认连接为 pgsql 且 search_path 非空非 public 时返回, 其余(sqlite/mysql 或未配 DB_SCHEMA)返回 null 零开销跳过。

Returns

?string —

listenModelEvents()

listenModelEvents(string  $event) : void

监听所有模型的指定事件(eloquent.{event}: *),自动失效缓存

Parameters

string $event

autoInvalidate()

autoInvalidate(\Illuminate\Database\Eloquent\Model  $model) : void

模型事件自动失效:检查注册表是否声明了该表的缓存依赖,有则清。 注册表无该表依赖 → 跳过(零开销)。

走 invalidateByTableDeferred:事件在事务内触发时先即时解析受影响用户 (deleting 时行仍在,回查 FK 可得),Redis 删除挂 afterCommit 提交后执行; 事务外触发则立即执行。事务中途清缓存会引入「并发读以提交前旧数据重建缓存 → 提交后脏缓存残留至 TTL」的竞态窗口。

Parameters

\Illuminate\Database\Eloquent\Model $model

ensureSchema()

ensureSchema() : void

PostgreSQL schema 自举:search_path 目标 schema 不存在时幂等创建。

背景:Laravel pgsql 连接只把 DB_SCHEMA 写进 search_path,不会创建 schema—— 全新库若缺该 schema,migrate 建 migrations 表的第一步就报「创建中没有选择模式」。 migrate 系列命令启动(CommandStarting)即触发本方法,空库 → migrate --seed 全程零手工步骤。