netgen/layouts-coding-standard

Coding standard for Netgen Layouts

1.0.2 2020-07-03 20:19 UTC

This package is auto-updated.

Last update: 2020-11-24 12:34:44 UTC


README

This repository provides a default configuration used by all Netgen Layouts projects to check for coding standards violations. The config is based on PHP CS Fixer.

Installation

$ composer require --dev netgen/layouts-coding-standard

Usage

Create a .php_cs file in the root of your project with the following:

return Netgen\Layouts\CodingStandard\PhpCsFixer\Config::create()
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->exclude(['vendor'])
            ->in(__DIR__)
    )
;

Run the fixer with:

$ vendor/bin/php-cs-fixer fix

Overriding existing rules

You can override rules included in this config per project:

return Netgen\Layouts\CodingStandard\PhpCsFixer\Config::create()
    ->addRules([
        'list_syntax' => ['syntax' => 'long'],
    ])
    ->setFinder(
        PhpCsFixer\Finder::create()
            ->exclude(['vendor'])
            ->in(__DIR__)
    )
;

Supporting PHAR distribution of PHP CS Fixer

You can also support running PHAR version of PHP CS Fixer by adding the following at the top of your .php_cs file:

// To support running PHP CS Fixer via PHAR file (e.g. in GitHub Actions)
require_once __DIR__ . '/vendor/netgen/layouts-coding-standard/lib/PhpCsFixer/Config.php';

This is e.g. useful if you wish to run PHP CS Fixer via GitHub action, which does not need running composer install:

# .github/workflows/ci.yml
name: PHP CS Fixer
on: [push, pull_request]

jobs:
  php-cs-fixer:
    name: PHP CS Fixer
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/checkout@v2
        with:
          repository: netgen-layouts/layouts-coding-standard
          path: vendor/netgen/layouts-coding-standard
      - name: PHP CS Fixer
        uses: OskarStark/php-cs-fixer-ga@master
        with:
          args: --diff --dry-run

Check https://github.com/OskarStark/php-cs-fixer-ga for more details.