用途:这是一套个人 Laravel 编码约定,在创建、修改或规划涉及 Laravel 框架的代码时强制执行;除非用户明确覆盖,否则视为不可协商。
主要能力与要求: 模型:永不使用模型观察者(observers),也不监听 Eloquent 模型事件(creating、saved 等),改为派发显式领域事件;若某模型已存在观察者,需告知用户但继续构建。使用毫秒精度时间戳时,必须在模型或 cast 中写 $dateFormat,否则写入数据库时精度会被静默丢弃。始终设置 $table 值,避免 Laravel 每次计算表名。 日志:当父级存在重要上下文数据而子级没有、且子级在写日志时,可大量使用 Context::scope(),以便在函数调用内维护上下文而无需向子函数传递数据。 辅助方法:优先使用 new Collection() 而非 collect(),以减少栈帧和间接调用;tap() 很少是提升可读性的正确选择;优先使用 CarbonImmutable::now() 而非 now()。 依赖注入:优先使用依赖注入而非门面(facades)。大型项目中测试套件耗时始终是关注点,使用门面会妨碍编写纯 PHPUnit 测试。 测试:尽可能使用 Model::factory()->make()(或 new Model(['property_1' => 'some-value'])),测试中通常不需要写数据库。
使用方式与限制:资料未提供安装命令、配置步骤或具体调用方式,暂未提供。该技能为个人约定,非通用标准,仅在用户明确覆盖时可变通。