프로덕션에 var_dump()를 배포하지 말고 — PHPStan으로 강제하세요
발행: (2026년 4월 6일 PM 03:43 GMT+9)
2 분 소요
원문: Dev.to
Source: Dev.to
문제
PHPStan은 훌륭하지만, 이와 같은 사용자 정의 규칙을 적용하는 것은 쉽지 않습니다.
다음 중 하나를 선택합니다:
- 사용자 정의 PHPStan 규칙을 작성한다 (시간 소요)
- 혹은 금지된 함수와 같은 제한된 방식을 사용한다
원하는 것
다음을 할 수 있는 것이 필요했습니다:
- 특정 함수(
var_dump,dd)를 금지 - 특정 메서드 호출을 제한
- 아키텍처 경계 강제
- PHP 코드를 작성하지 않고도 설정 가능
해결책
금지 패턴을 정의할 수 있는 작은 PHPStan 확장을 만들었습니다:
parameters:
forbidden_node:
nodes:
- type: Expr_FuncCall
functions: [var_dump, dd]
이제 PHPStan이 다음과 같이 보고합니다:
Forbidden function var_dump() used in App\Service\UserService.php:42
왜 유용한가
다음과 같은 규칙을 적용할 수 있습니다:
- ❌ 프로덕션에 디버그 함수 금지
- ❌ 컨트롤러에서 직접 DB 호출 금지
- ❌ 레이어 간 위반 금지
- ❌ 안전하지 않은 패턴 금지
레포지토리
👉