SuperAPI AI 工具集

laravel-verification

部署与运维

查看项目

更新于 10-15 11:38

技能介绍

用途

Laravel Verification Loop 是一个面向 Laravel 项目的验证流程技能,用于在以下场景中执行系统化检查:

  • 为 Laravel 项目打开拉取请求(PR)之前
  • 重大重构或依赖升级之后
  • 针对 staging 或 production 的部署前验证
  • 运行完整的 lint -> test -> security -> deploy readiness 流水线

主要能力

该技能按阶段顺序执行验证,每一层建立在前一层之上:

  1. 环境与 Composer 检查:作为所有后续步骤的门槛,失败时立即停止。
  2. 代码风格与静态分析:在运行完整测试和覆盖率之前,应保持干净。
  3. 测试与覆盖率:验证行为。
  4. 安全与依赖审计:在测试之后进行,确保在数据或发布步骤前验证行为。
  5. 数据库与迁移审查:检查迁移状态和破坏性迁移。
  6. 构建与部署就绪:缓存预热、队列与调度器配置、目录可写性。
  7. 队列与调度器检查:作为最终关卡,任何失败都会阻止发布。

使用方式

阶段 1:环境检查

php -v
composer --version
php artisan --version
  • 验证 .env 存在且所需键存在
  • 确认生产环境 APP_DEBUG=false
  • 确认 APP_ENV 与目标部署环境匹配(production、staging)

如果本地使用 Laravel Sail:

./vendor/bin/sail php -v
./vendor/bin/sail artisan --version

阶段 1.5:Composer 与自动加载

composer validate
composer dump-autoload -o

阶段 2:代码风格与静态分析

vendor/bin/pint --test
vendor/bin/phpstan analyse

如果项目使用 Psalm 而非 PHPStan:

vendor/bin/psalm

阶段 3:测试与覆盖率

php artisan test

覆盖率(CI):

XDEBUG_MODE=coverage php artisan test --coverage

CI 示例(格式 -> 静态分析 -> 测试):

vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage

阶段 4:安全与依赖检查

composer audit

阶段 5:数据库与迁移

php artisan migrate --pretend
php artisan migrate:status
  • 仔细审查破坏性迁移
  • 确保迁移文件名遵循 Y_m_d_His_* 格式(例如 2025_03_14_154210_create_orders_table.php)并清晰描述变更
  • 确保可以回滚
  • 验证 down() 方法,避免在没有明确备份的情况下造成不可逆的数据丢失

阶段 6:构建与部署就绪

php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
  • 确保缓存预热在生产配置下成功
  • 验证队列 worker 和调度器已配置
  • 确认目标环境中 storage/ 和 bootstrap/cache/ 可写

阶段 7:队列与调度器检查

php artisan schedule:list
php artisan queue:failed

如果使用 Horizon:

php artisan horizon:status

如果 queue:monitor 可用,使用它检查积压而不处理作业:

php artisan queue:monitor default --max=100

主动验证(仅限 staging):向专用队列派发一个空操作作业并运行单个 worker 处理它(确保配置了非 sync 队列连接)。

php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=healthcheck

验证作业产生了预期的副作用(日志条目、healthcheck 表行或指标)。

仅在非生产环境运行此操作,确保处理测试作业是安全的。

示例

最小流程:

php -v
composer --version
php artisan --version
composer validate
vendor/bin/pint --test
vendor/bin/phpstan analyse
php artisan test
composer audit
php artisan migrate --pretend
php artisan config:cache
php artisan queue:failed

CI 风格流水线:

composer validate
composer dump-autoload -o
vendor/bin/pint --test
vendor/bin/phpstan analyse
XDEBUG_MODE=coverage php artisan test --coverage
composer audit
php artisan migrate --pretend
php artisan optimize:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan schedule:list

适用场景

  • Laravel 项目的持续集成(CI)流水线
  • 预发布(staging)验证
  • 生产部署前检查
  • 重大重构或依赖升级后的回归验证

限制

  • 主动队列验证(派发测试作业)仅应在非生产环境(如 staging)执行,确保处理测试作业是安全的。
  • 环境与 Composer 检查失败时,流程应立即停止,不继续后续阶段。
  • 代码风格与静态分析应在运行完整测试和覆盖率之前保持干净。
  • 安全与迁移审查在测试之后进行。
  • 构建/部署就绪和队列/调度器检查是最终关卡,任何失败都会阻止发布。
  • 关于收费、价格、平台支持等具体信息,资料中暂未提供。