Laravel Pint란
Laravel Pint는 PHP CS Fixer 위에 구축된 코드 스타일 자동 수정 도구입니다. 설정 없이 바로 사용할 수 있도록 설계되었으며, Laravel의 코딩 스타일에 따라 코드를 자동으로 정형화합니다. 팀 개발에서 자주 있는 “코드 스타일에 대한 리뷰 코멘트”를 자동화함으로써 본질적인 코드 리뷰에 집중할 수 있게 됩니다.설치
새로 생성된 Laravel 애플리케이션에는 Pint가 자동으로 설치되어 있습니다. 구버전 프로젝트에는 Composer로 설치해 주세요.실행 방법
기본 사용법
프로젝트 내의 모든.php 파일을 자동 수정합니다.
옵션 목록
설정
프로젝트 루트에pint.json을 생성하여 동작을 커스터마이징할 수 있습니다.
프리셋
프리셋은 규칙 세트입니다. 기본값은laravel 프리셋이며, Laravel 프로젝트에 최적화된 규칙이 적용됩니다.
규칙 커스터마이징
pint.json에서 규칙을 개별적으로 활성화/비활성화할 수 있습니다. 사용 가능한 규칙은 PHP CS Fixer Configurator를 참조해 주세요.
파일·폴더 제외
특정 폴더를 검사 대상에서 제외할 수 있습니다.notName을 사용합니다.
notPath를 사용합니다.
권장 설정
실제 개발 현장에서 효과적인pint.json 설정 예시를 소개합니다.
no_unused_imports는 패키지 개발용 설정입니다. Pint의 기본값은 true(사용되지 않는 use 문 삭제)이므로 일반적인 Laravel 프로젝트에서는 이 항목 자체가 불필요합니다. 패키지 개발에서는 트레이트나 인터페이스의 임포트로 기능을 온/오프하는 패턴이 있기 때문에, false를 추가해 두고 각 패키지 상황에 맞춰 true로 변경하는 운용이 편리합니다.composer.json에 scripts 설정
composer.json에 pint용 스크립트를 등록하면 composer pint만으로 실행할 수 있게 됩니다.
CI 환경에서는
composer pint:test를 사용하면 파일을 변경하지 않고 스타일 위반을 검출할 수 있습니다. --test 옵션은 에러가 있으면 0이 아닌 종료 코드를 반환하므로 CI의 패스 체크에 사용할 수 있습니다.GitHub Actions에서 자동 실행
GitHub Actions를 사용해 푸시할 때마다 코드 스타일을 자동 수정·커밋할 수 있습니다.1
Workflow의 권한을 설정한다
GitHub 리포지토리의 Settings > Actions > General > Workflow permissions에서 “Read and write permissions”를 활성화합니다.
2
Workflow 파일을 생성한다
.github/workflows/lint.yml을 생성합니다.