Pint to naprawiacz w stylu kodu PHP, który został specjalnie stworzony do pracy z Laravel. W tym samouczku pokażę, jak to działa i jak zautomatyzować jego uruchomienie przed lub po zatwierdzeniu kodu do repozytorium.
Instalacja
Aby zainstalować Pinta, jest tylko jeden krok - instalacja przez Composer:
composer require laravel/pint --dev
I to wszystko! Wszystko gotowe do użycia Pinta.
Używanie Pint lokalnie z Git Hooks
Jedną z opcji użycia Pint są haczyki przed zatwierdzeniem. Jest to świetne rozwiązanie dla tych, którzy chcą wypchnąć swój kod do repozytorium tylko wtedy, gdy jest on odpowiednio sformatowany. Oto, co musisz zrobić:Utwórz plik .git/hooks/pre-commit
o następującej zawartości:
Oto co robi ten skrypt:
#!/bin/sh
files=$(git diff --cached --name-only --diff-filter=ACM -- '*.php');
vendor/bin/pint $files -q
git add $files
- Pobiera listę
.php
plików, które zostały zmienione - Uruchamia Pint na tych plikach
- Dodaje te pliki do zatwierdzenia
Umożliwia to bezproblemową integrację z Git. Gdy spróbujesz coś zatwierdzić - sformatuje kod i wypchnie go do repozytorium.
Używanie Pint z akcjami usługi GitHubUsing Pint with GitHub Actions Another option for Pint use is GitHub Actions
. Dla tych, którzy nie są zaznajomieni, mam osobny film Advanced Laravel Testing: CI/CD with GitHub Actions.
Automatycznie uruchomi kontrolę na GitHubie, która sformatuje wszystkie pliki i dokona nowego zatwierdzenia. Aby to działało, musisz wykonać następujące czynności:Utwórz plik .github/workflows/pint.yml
o następującej zawartości:.github/workflows/pint.yml
Oto, co tutaj robimy:
name: PHP Linting (Pint)
on:
workflow_dispatch:
push:
branches-ignore:
- 'dependabot/npm_and_yarn/*'
jobs:
Pint:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e
with:
php-version: '8.1'
- uses: actions/checkout@v3
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Launch Pint inspection
run: vendor/bin/pint
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: PHP Linting (Pint)
skip_fetch: true
- Używamy akcji
shivammathur/setup-php
do zainstalowania PHP - Używamy akcji
actions/checkout
do wyewidencjonowania kodu - Kopiowanie pliku .env, jeśli nie istnieje (na wypadek, gdybyś chciał zrobić coś więcej niż tylko Pint z tym zadaniem)
- Instalowanie zależności w programie Composer
- Bieganie Pint
- Zatwierdzanie zmian za pomocą komunikatu zatwierdzenia
PHP Linting (Pint)
Po zatwierdzeniu tego pliku powinieneś zobaczyć, że w zakładce Akcje jest nowe zadanie: Kliknięcie go da ci wszystkie informacje o pracy: I wreszcie, powinieneś zobaczyć nowe zatwierdzenie w swoim repozytorium:
To wszystko! Teraz wszystkie twoje zatwierdzenia zostaną poprawnie sformatowane po wypchnięciu. Tylko nie zapomnij ich pociągnąć!