Pint

Introduzione

Laravel Pint è un correttore di stile del codice PHP orientato ai minimalisti. Pint è basato su PHP-CS-Fixer e rende semplice mantenere il tuo stile di codice pulito e coerente.

Pint viene installato automaticamente con tutte le nuove applicazioni Laravel, quindi puoi iniziare a usarlo subito. Per impostazione predefinita, Pint non richiede alcuna configurazione e correggerà i problemi di stile del codice seguendo lo stile di codifica di Laravel.

Installazione

Pint è incluso nelle versioni recenti del framework Laravel, quindi solitamente non è necessario installarlo. Tuttavia, per applicazioni più vecchie, puoi installare Laravel Pint tramite Composer:

composer require laravel/pint --dev

Eseguire Pint

Puoi chiedere a Pint di correggere i problemi di stile del codice eseguendo il binario pint che si trova nella directory vendor/bin del tuo progetto:

./vendor/bin/pint

Puoi anche eseguire Pint su file o cartelle specifiche:

./vendor/bin/pint app/Models

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

Pint mostrerà una lista dettagliata di tutti i file che aggiorna. Puoi vedere ancora più dettagli sui cambiamenti di Pint usando l’opzione -v quando esegui Pint:

./vendor/bin/pint -v

Se vuoi che Pint controlli solo il tuo codice per errori di stile senza modificare i file, puoi usare l’opzione --test. Pint restituirà un codice di uscita diverso da zero se vengono trovati errori di stile nel codice:

./vendor/bin/pint --test

Se vuoi che Pint modifichi solo i file che hanno cambiamenti non committati secondo Git, puoi usare l’opzione --dirty:

./vendor/bin/pint --dirty

Se vuoi che Pint corregga i file con errori di stile del codice e termini con un codice di uscita diverso da zero se vengono sistemati degli errori, puoi usare l’opzione --repair:

./vendor/bin/pint --repair

Configurazione di Pint

Come detto prima, Pint non richiede configurazioni. Tuttavia, se vuoi personalizzare i preset, le regole o le cartelle da controllare, puoi farlo creando un file pint.json nella directory principale del tuo progetto:

{
    "preset": "laravel"
}

Inoltre, se desideri usare un pint.json da una directory specifica, puoi usare l’opzione --config quando esegui Pint:

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

Predefiniti

I predefiniti definiscono un insieme di regole che possono essere utilizzate per correggere i problemi di stile del codice nel tuo progetto. Per impostazione predefinita, Pint usa il predefinito laravel, che corregge i problemi seguendo lo stile di codifica deciso da Laravel. Tuttavia, puoi specificare un predefinito diverso fornendo l’opzione --preset a Pint:

./vendor/bin/pint --preset psr12

Se desideri, puoi anche impostare il predefinito nel file pint.json del tuo progetto:

{
    "preset": "psr12"
}

I predefiniti attualmente supportati da Pint sono: laravel, per, psr12, symfony e empty.

Regole

Le regole sono linee guida di stile che Pint utilizzerà per correggere i problemi di stile nel tuo codice. Come menzionato sopra, i preset sono gruppi predefiniti di regole che dovrebbero essere perfetti per la maggior parte dei progetti PHP, quindi tipicamente non dovrai preoccuparti delle singole regole che contengono.

Tuttavia, se lo desideri, puoi abilitare o disabilitare regole specifiche nel tuo file pint.json oppure usare il preset empty e definire le regole da zero:

{
    "preset": "laravel",
    "rules": {
        "simplified_null_return": true,
        "array_indentation": false,
        "new_with_parentheses": {
            "anonymous_class": true,
            "named_class": true
        }
    }
}

Pint è costruito sopra PHP-CS-Fixer. Pertanto, puoi utilizzare qualsiasi sua regola per correggere i problemi di stile del codice nel tuo progetto: PHP-CS-Fixer Configurator.

Escludere File / Cartelle

Per default, Pint esaminerà tutti i file .php nel tuo progetto tranne quelli nella directory vendor. Se vuoi escludere altre cartelle, puoi usare l’opzione di configurazione exclude:

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

Se vuoi escludere tutti i file che contengono un determinato pattern nel nome, puoi usare l’opzione di configurazione notName:

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

Se desideri escludere un file fornendo un percorso esatto, puoi usare l’opzione di configurazione notPath:

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

Continuous Integration

GitHub Actions

Per automatizzare il linting del tuo progetto con Laravel Pint, puoi configurare GitHub Actions per eseguire Pint ogni volta che viene inviato nuovo codice su GitHub. Prima, assicurati di concedere le "Autorizzazioni di lettura e scrittura" ai workflow in GitHub in Settings > Actions > General > Workflow permissions. Successivamente, crea un file .github/workflows/lint.yml con il seguente contenuto:

name: Fix Code Style

on: [push]

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true
      matrix:
        php: [8.3]

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: json, dom, curl, libxml, mbstring
          coverage: none

      - name: Install Pint
        run: composer global require laravel/pint

      - name: Run Pint
        run: pint

      - name: Commit linted files
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "Fixes coding style"
Lascia un commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *