본문으로 건너뛰기
버전: 10.x
Laravel 10.x · 한국어 문서https://laravel.com/docs/10.x/pint

Laravel Pint

Introduction​

Laravel Pint는 미니멀리스트를 위한 Laravel의 공식 PHP 코드 스타일 자동 정리 도구입니다. Pint는 PHP-CS-Fixer를 기반으로 만들어졌으며, 여러분의 코드 스타일을 깔끔하고 일관되게 유지하는 데 도움을 줍니다.

Pint는 모든 최신 Laravel 애플리케이션에 기본적으로 설치되어 있으므로, 별도의 설치 없이 바로 사용할 수 있습니다. 기본 설정 상태에서 Pint는 어떠한 추가 설정도 필요하지 않으며, Laravel에서 제안하는 코드 스타일을 따라 코드 내의 스타일 문제를 자동으로 수정해줍니다.

Installation​

Pint는 최근에 출시된 Laravel 프레임워크에 기본 포함되어 있기 때문에, 별도 설치가 필요 없는 경우가 대부분입니다. 하지만 이전 버전의 애플리케이션에서는 Composer를 통해 Laravel Pint를 직접 설치할 수 있습니다:

composer require laravel/pint --dev

Running Pint​

프로젝트의 vendor/bin 디렉터리에 있는 pint 바이너리를 실행하면 Pint가 코드 스타일 문제를 자동으로 고쳐줍니다:

./vendor/bin/pint

특정 파일이나 디렉터리만 대상으로 Pint를 실행할 수도 있습니다:

./vendor/bin/pint app/Models

./vendor/bin/pint app/Models/User.php

Pint는 수정한 모든 파일을 자세하게 목록으로 보여줍니다. 실행 시 -v 옵션을 추가하면, Pint가 수행한 변경 내역을 더욱 상세하게 확인할 수 있습니다:

./vendor/bin/pint -v

코드를 실제로 수정하지 않고 스타일 오류만 검사하고 싶다면, --test 옵션을 사용할 수 있습니다:

./vendor/bin/pint --test

Git에서 커밋되지 않은 변경사항이 있는 파일만 수정하고 싶다면, --dirty 옵션을 활용할 수 있습니다:

./vendor/bin/pint --dirty

Configuring Pint​

앞서 언급한 바와 같이, Pint는 별도의 설정 없이도 사용할 수 있습니다. 하지만, 프리셋이나 규칙, 검사할 폴더 등을 직접 지정하고 싶다면 프로젝트의 루트 디렉터리에 pint.json 파일을 만들어서 커스터마이즈할 수 있습니다:

{
"preset": "laravel"
}

또한, 특정 디렉터리의 pint.json 파일을 사용하고 싶다면 Pint 실행 시 --config 옵션을 지정하면 됩니다:

pint --config vendor/my-company/coding-style/pint.json

Presets​

프리셋은 코드 스타일 문제를 고치기 위한 일련의 규칙 집합을 의미합니다. Pint는 기본적으로 laravel 프리셋을 사용하여 Laravel의 공식 코드 스타일 가이드에 따라 문제를 해결합니다. 하지만, 원하는 경우 Pint 실행 시 --preset 옵션으로 다른 프리셋을 지정할 수도 있습니다:

pint --preset psr12

또는, 프로젝트의 pint.json 파일에서 아래와 같이 프리셋을 설정할 수도 있습니다:

{
"preset": "psr12"
}

Pint에서 현재 지원하는 프리셋은 다음과 같습니다: laravel, per, psr12, symfony.

Rules​

규칙이란 Pint가 코드 스타일 문제를 자동으로 고칠 때 사용하는 구체적인 스타일 기준을 의미합니다. 앞서 설명한 프리셋은 여러 규칙을 미리 묶어둔 것으로, 대부분의 PHP 프로젝트에서는 프리셋만 지정해도 충분합니다.

하지만 필요에 따라, 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에서 확인할 수 있습니다.

Excluding Files / Folders​

기본적으로 Pint는 여러분 프로젝트 내의 모든 .php 파일을 검사하지만, vendor 디렉터리 아래의 파일은 자동으로 제외됩니다. 이 외에 추가로 특정 폴더를 검사 대상에서 제외하고 싶다면 exclude 설정 옵션을 활용할 수 있습니다:

{
"exclude": [
"my-specific/folder"
]
}

특정 이름 패턴을 가진 파일을 모두 제외하고 싶다면 notName 옵션을 사용할 수 있습니다:

{
"notName": [
"*-my-file.php"
]
}

정확한 경로로 지정한 파일을 제외하려면 notPath 옵션을 이용하면 됩니다:

{
"notPath": [
"path/to/excluded-file.php"
]
}