• Czas czytania ~2 min
  • 24.05.2023

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ąć!

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297