
关于
Laravel 项目验证循环:环境检查、代码检查、静态分析、带覆盖率的测试、安全扫描和部署就绪性。
name: laravel-verification description: "Laravel 项目验证循环:环境检查、代码检查、静态分析、带覆盖率的测试、安全扫描和部署就绪性验证。" origin: ECC
Laravel 验证循环
在 PR 提交前、重大变更后和部署前运行。
适用场景
- 在为 Laravel 项目提交 Pull Request 之前
- 在重大重构或依赖升级之后
- 预发布/生产环境的部署前验证
- 运行完整的 lint -> 测试 -> 安全 -> 部署就绪性流水线
工作原理
- 从环境检查到部署就绪性按顺序运行各阶段,使每一层都建立在前一层的基础上。
- 环境和 Composer 检查是所有后续步骤的前置条件;如果失败则立即停止。
- 代码检查/静态分析应在运行完整测试和覆盖率之前通过。
- 安全和迁移审查在测试之后进行,这样你可以在数据或发布步骤之前验证行为。
- 构建/部署就绪性和队列/调度器检查是最终关卡;任何失败都会阻止发布。
阶段 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
- 确保缓存预热在生产配置中成功
- 验证队列工作进程和调度器已配置
- 确认目标环境中
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
主动验证(仅限预发布环境):向专用队列分发一个空操作任务并运行单个工作进程来处理它(确保配置了非 sync 队列连接)。
php artisan tinker --execute="dispatch((new App\\Jobs\\QueueHealthcheck())->onQueue('healthcheck'))"
php artisan queue:work --once --queue=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
兼容工具
Claude CodeCursor
标签
测试

