synergitech/laravel-coding-standards

A generic package for implementing Laravel Pint coding standards across Laravel packages

Maintainers

Package info

github.com/SynergiTech/laravel-coding-standards

Language:Shell

pkg:composer/synergitech/laravel-coding-standards

Statistics

Installs: 4 999

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 2

v2.0.1 2026-03-30 13:59 UTC

This package is auto-updated.

Last update: 2026-03-30 14:02:20 UTC


README

A Composer package for implementing Laravel Pint coding standards across Laravel packages.

Overview

This package provides:

  • A standardised pint.json configuration file with PSR-12 preset and custom rules
  • Shell scripts to run Laravel Pint for code formatting and testing
  • Automatic Laravel Pint dependency management through Composer

Installation

Via Composer (Recommended)

Install the package using Composer:

composer require synergitech/laravel-coding-standards --dev

This will automatically install Laravel Pint as a dependency and make the scripts available in your project.

Alternative Installation Methods

  1. As a Git Submodule:

    git submodule add https://github.com/SynergiTech/laravel-coding-standards.git tools/coding-standards
  2. Manual Installation: Copy the files directly to your project and install Laravel Pint separately:

    composer require laravel/pint --dev

Usage

Running Pint

Apply Code Formatting

To automatically fix coding standard issues:

./vendor/synergitech/laravel-coding-standards/pint

Or if installed as submodule/manually:

./tools/coding-standards/pint
# or
./pint

You can pass additional arguments to customise the behaviour:

./vendor/synergitech/laravel-coding-standards/pint --verbose
./vendor/synergitech/laravel-coding-standards/pint --dry-run
./vendor/synergitech/laravel-coding-standards/pint app/Models

Test Code Standards

To check for coding standard issues without making changes:

./vendor/synergitech/laravel-coding-standards/pint-test

Or if installed as submodule/manually:

./tools/coding-standards/pint-test
# or
./pint-test

You can pass additional arguments to customise the testing:

./vendor/synergitech/laravel-coding-standards/pint-test --verbose
./vendor/synergitech/laravel-coding-standards/pint-test app/Controllers

Adding Scripts to Your Composer.json

For easier access, you can add these scripts to your project's composer.json:

{
    "scripts": {
        "pint": "./vendor/synergitech/laravel-coding-standards/pint",
        "pint:test": "./vendor/synergitech/laravel-coding-standards/pint-test"
    }
}

Then run:

composer run pint        # Apply formatting
composer run pint:test   # Test standards

Boost Guidelines

As this plugin acts as a wrapper for pint, the boost guidelines that get published into the project do not reference this package. If you use boost then you will need to override the boost guidelines for pint. If you want this package to publish boost guideline stubs into your project (.ai/guidelines), add the Composer install script override below to your project's composer.json:

{
    "scripts": {
        "post-install-cmd": [
            "SynergiTech\\LaravelCodingStandards\\ComposerScripts::publishGuidelines"
        ]
    }
}

After adding it, run:

composer install

This triggers SynergiTech\LaravelCodingStandards\ComposerScripts::publishGuidelines and copies the guideline files into .ai/guidelines which boost will interpret as an overwrite when running boost:install and boost:update.

Configuration

The pint.json file includes:

  • PSR-12 preset as the base standard
  • Custom rules for enhanced code quality
  • Exclusion of common directories (vendor, storage, bootstrap/cache)

Custom Rules Included

  • Array syntax and indentation improvements
  • Multiline comment alignment
  • String concatenation with single space
  • Strict type comparisons
  • Ordered class elements and imports
  • Modern PHP syntax preferences
  • And many more quality-of-life improvements

For a full list of rules, see the pint.json configuration file.

Requirements

  • PHP ^8.1
  • Laravel Pint ^1.0 (automatically installed with this package)

License

This package is open-sourced software licensed under the MIT license.