用途:在 Symfony 项目中建立可机械验证的质量门禁,覆盖静态分析、代码风格、分层约束与 CI 流水线。核心为 PHPStan 与 php-cs-fixer,deptrac 按需启用。
主要能力:PHPStan 使用 level max,并启用 phpstan-symfony、phpstan-doctrine、phpstan-strict-rules、phpstan-deprecation-rules;php-cs-fixer 统一风格;deptrac 校验分层契约(控制器、服务、仓储、实体、消息处理器的依赖边界);composer audit 与 importmap:audit 检查 PHP 与 JavaScript 已知漏洞;lint:container 检查服务可构建性;doctrine:schema:validate 检查映射与数据库一致性。
使用方式:从 assets/ 复制文件到项目根目录并提交,先读 assets/README.md,其中三个文件需按项目调整。入口为 castor.php,回退为 alternatives/Makefile,二者只提交一个。任务名一致:qa、test、stan、stan-baseline、cs、cs-check、deptrac、audit、lint、container-cache、update。运行 castor qa 或 make qa。工具默认从 jakzal/phpqa 镜像运行,无需加入 composer.json;镜像已含所需工具。
适用场景:需要统一本地与 CI 工具版本、希望规则可验证而非仅写在文档中的 Symfony 项目;已有代码库可先用 castor stan-baseline 冻结存量债务,基线只减不增。
限制:deptrac 在 deptrac.yaml 缺失时被跳过;PHPStan 需先预热容器缓存,否则 Symfony 扩展会静默失效;lint:container 无法捕获懒加载定位器、接口不匹配的 #[Autowire] 及拼错的 #[WithMonologChannel];phpunit.dist.xml 需补 failOnPhpunitNotice 与 DAMA 扩展注册;CI 数据库服务应与生产一致。未提供具体价格与平台信息。