Laravel Pint
번역일: 2026년 6월 20일
Laravel Pint
소개
Laravel Pint는 미니멀리스트를 위한 PHP 코드 스타일 자동 교정 도구입니다. PHP-CS-Fixer를 기반으로 만들어졌으며, Laravel의 코딩 스타일 기준에 따라 코드를 깔끔하고 일관되게 유지할 수 있도록 도와줍니다.
Pint는 새로운 Laravel 프로젝트에 기본으로 포함되어 있어, 별도의 설정 없이 바로 사용할 수 있습니다. 기본 설정 파일이 없어도 Laravel의 코딩 컨벤션에 맞게 코드를 자동으로 정리해 줍니다.
설치
최근 버전의 Laravel 프레임워크에는 Pint가 기본 포함되어 있으므로, 대부분의 경우 별도 설치가 필요하지 않습니다. 구버전 프로젝트를 사용 중이라면 Composer로 설치할 수 있습니다:
composer require laravel/pint --devPint 실행
프로젝트의 vendor/bin 디렉토리에 있는 pint 바이너리를 실행하면 코드 스타일 교정이 시작됩니다:
./vendor/bin/pint특정 파일이나 디렉토리만 대상으로 실행할 수도 있습니다:
./vendor/bin/pint app/Models./vendor/bin/pint app/Models/User.phpPint를 실행하면 수정된 파일 목록이 출력됩니다. -v 옵션을 사용하면 어떤 부분이 어떻게 바뀌었는지 더 자세한 내용을 확인할 수 있습니다:
./vendor/bin/pint -v실제로 파일을 수정하지 않고 스타일 오류만 확인하고 싶다면 --test 옵션을 사용하세요:
./vendor/bin/pint --testGit에서 아직 커밋되지 않은 변경 파일만 교정하고 싶다면 --dirty 옵션을 사용할 수 있습니다. CI/CD 파이프라인이나 PR 전 검사 단계에서 특히 유용합니다:
./vendor/bin/pint --dirtyPint 설정
앞서 언급했듯이 Pint는 설정 파일 없이도 바로 사용할 수 있습니다. 하지만 프리셋, 규칙, 검사 대상 폴더를 직접 지정하고 싶다면 프로젝트 루트에 pint.json 파일을 생성하면 됩니다:
{
"preset": "laravel"
}특정 디렉토리에 위치한 pint.json을 사용하려면 --config 옵션으로 경로를 지정할 수 있습니다:
pint --config vendor/my-company/coding-style/pint.json프리셋
프리셋은 코드 스타일 교정에 사용할 규칙들을 묶어 놓은 묶음입니다. 기본값은 laravel 프리셋으로, Laravel 공식 코딩 스타일을 따릅니다. 다른 프리셋을 사용하려면 --preset 옵션으로 지정할 수 있습니다:
pint --preset psr12pint.json 파일에 직접 명시하는 방법도 있습니다:
{
"preset": "psr12"
}현재 Pint가 지원하는 프리셋은 laravel, per, psr12, symfony입니다.
규칙
규칙은 Pint가 코드를 교정할 때 따르는 세부 스타일 지침입니다. 프리셋은 이러한 규칙들을 미리 묶어 놓은 것으로, 대부분의 프로젝트에서는 프리셋만 지정해도 충분합니다.
필요한 경우 pint.json에서 특정 규칙을 개별적으로 활성화하거나 비활성화할 수 있습니다:
{
"preset": "laravel",
"rules": {
"simplified_null_return": true,
"braces": false,
"new_with_braces": {
"anonymous_class": false,
"named_class": false
}
}
}Pint는 PHP-CS-Fixer를 기반으로 하므로, PHP-CS-Fixer에서 지원하는 모든 규칙을 사용할 수 있습니다. 사용 가능한 규칙 전체 목록은 PHP-CS-Fixer Configurator에서 확인하세요.
파일 / 폴더 제외
Pint는 기본적으로 프로젝트 내 모든 .php 파일을 검사하되, vendor 디렉토리는 제외합니다. 추가로 제외할 폴더가 있다면 exclude 옵션을 사용하세요:
{
"exclude": [
"my-specific/folder"
]
}특정 이름 패턴에 해당하는 파일을 제외하려면 notName 옵션을 사용합니다:
{
"notName": [
"*-my-file.php"
]
}정확한 경로로 특정 파일을 제외하려면 notPath 옵션을 사용합니다:
{
"notPath": [
"path/to/excluded-file.php"
]
}