narrowspark / php-cs-fixer-config
Provides a configuration for friendsofphp/php-cs-fixer, used within Narrowspark and Anolilab.
Fund package maintenance!
prisis
Open Collective
Installs: 60 214
Dependents: 4
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 3
Open Issues: 19
Requires
- php: ^8.0
- ergebnis/license: ~1.1.0
- friendsofphp/php-cs-fixer: ~2.18.2
- kubawerlos/php-cs-fixer-custom-fixers: ~2.4.1
- pedrotroller/php-cs-custom-fixer: ~2.24.0
Requires (Dev)
- ext-json: *
- infection/infection: ^0.21.3
- phpstan/phpstan: ^0.12.80
- phpstan/phpstan-deprecation-rules: ^0.12.6
- phpstan/phpstan-mockery: ^0.12.12
- phpstan/phpstan-phpunit: ^0.12.17
- phpstan/phpstan-strict-rules: ^0.12.9
- phpunit/phpunit: ^9.5.2
- psalm/plugin-phpunit: ^0.15.1
- rector/rector: ^0.10.6
- rector/rector-phpunit: ^0.10.6
- slam/phpstan-extensions: ^5.1.0
- symplify/phpstan-rules: ^9.2
- thecodingmachine/phpstan-strict-rules: ^0.12.1
- vimeo/psalm: ^4.6.2
- dev-main / 6.3.x-dev
- v6.3.4
- v6.3.3
- v6.3.2
- v6.3.1
- v6.3.0
- 6.2.0
- 6.1.0
- 6.0.0
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.0
- 4.1.0
- 4.0.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.2
- v3.1.1
- v3.1.0
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- dev-dependabot/npm_and_yarn/json5-2.2.3
- dev-renovate/stefanzweifel-git-auto-commit-action-4.x
- dev-renovate/node-14.x
- dev-dependabot/npm_and_yarn/minimatch-3.1.2
- dev-dependabot/npm_and_yarn/node-fetch-2.6.7
- dev-renovate/actions-stale-4.x
- dev-renovate/actions-setup-node-3.x
- dev-dependabot/npm_and_yarn/minimist-1.2.6
- dev-renovate/actions-download-artifact-3.x
- dev-renovate/actions-cache-3.x
- dev-renovate/major-3-dependencies-(major)
- dev-renovate/devdependencies-(non-major)
- dev-renovate/actions-checkout-3.x
- dev-renovate/dependencies-(non-major)
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/normalize-url-4.5.1
- dev-dependabot/npm_and_yarn/trim-newlines-3.0.1
- dev-dependabot/npm_and_yarn/hosted-git-info-2.8.9
- dev-feature/template/sync/narrowspark/php-library-template
This package is auto-updated.
Last update: 2023-03-07 06:14:54 UTC
README
This repository provides a configuration for https://github.com/FriendsOfPHP/PHP-CS-Fixer, which we use to verify and enforce a single coding standard for PHP code within Narrowspark and Anolilab.Installation
Via Composer
$ composer require narrowspark/php-cs-fixer-config
Usage
Create a configuration file .php_cs
in the root of your project:
<?php declare(strict_types=1); use Narrowspark\CS\Config\Config; $config = new Config(); $config->getFinder() ->files() ->in(__DIR__) ->exclude('.build') ->exclude('vendor') ->name('*.php') ->ignoreDotFiles(true) ->ignoreVCS(true); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/php_cs.cache'); return $config;
Git
All configuration examples use the caching feature, and if you want to use it as well, you add the cache directory to .gitignore
:
+ /.build/
/vendor/
💡 personally, I prefer to use a .build
directory for storing build artifacts.
Configuration with header
💡 optionally specify a header:
<?php declare(strict_types=1); use Narrowspark\CS\Config\Config; +$header = <<<EOF +Copyright (c) 2020 Narrowspark + +For the full copyright and license information, please view +the LICENSE file that was distributed with this source code. +EOF; -$config = new Narrowspark\CS\Config\Config(); +$config = new Narrowspark\CS\Config\Config($header); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/php_cs.cache'); return $config;
This will turn on and configure the HeaderCommentFixer
, so that
file headers will be added to PHP files, for example:
Configuration with override rules
💡 optionally override rules from a rule set by passing in an array of rules to be merged in:
<?php declare(strict_types=1); use Narrowspark\CS\Config\Config; - $config = new Config(); + $config = new Config(null /* if you dont need a header */, [ 'mb_str_functions' => false, 'strict_comparison' => false, ]); $config->getFinder() ->files() ->in(__DIR__) ->exclude('.build') ->exclude('vendor') ->name('*.php') ->ignoreDotFiles(true) ->ignoreVCS(true); $config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/php_cs.cache'); return $config;
Composer
If you like composer
scripts, add a coding-standards
script to composer.json
:
{ "name": "foo/bar", "require": { "php": "^7.3", }, "require-dev": { "narrowspark/php-cs-fixer-config": "~1.0.0" + }, + "scripts": { + "cs:check": [ + "mkdir -p .build/php-cs-fixer", + "php-cs-fixer fix --diff --diff-format=udiff --verbose" + ] } }
Run
$ composer cs:check
To automatically fix coding standard violations.
Travis
If you like Travis CI, add a coding-standards
stage to your jobs:
language: php cache: directories: - $HOME/.composer/cache + - .build/php-cs-fixer jobs: include: + - stage: "Coding Standards" + + php: 7.3 + + install: + - composer install --no-interaction --no-progress --no-suggest + + before_script: + - mkdir -p .build/php-cs-fixer + + script: + - vendor/bin/php-cs-fixer fix --config=.php_cs --diff --dry-run --verbose
GitHub Actions
If you like GitHub Actions, add a coding-standards
job to your workflow:
on: pull_request: push: branches: - master tags: - "**" name: "Continuous Integration" jobs: + coding-standards: + name: "Coding Standards" + + runs-on: ubuntu-latest + + steps: + - name: "Checkout" + uses: actions/checkout@v1.1.0 + + - name: "Disable Xdebug" + run: php7.3 --ini | grep xdebug | sed 's/,$//' | xargs sudo rm + + - name: "Cache dependencies installed with composer" + uses: actions/cache@v1.0.2 + with: + path: ~/.composer/cache + key: php7.3-composer-locked-${{ hashFiles('**/composer.lock') }} + restore-keys: | + php7.3-composer-locked- + + - name: "Install locked dependencies with composer" + run: php7.3 $(which composer) install --no-interaction --no-progress --no-suggest + + - name: "Create cache directory for friendsofphp/php-cs-fixer" + run: mkdir -p .build/php-cs-fixer + + - name: "Cache cache directory for friendsofphp/php-cs-fixer" + uses: actions/cache@v1.0.2 + with: + path: ~/.build/php-cs-fixer + key: php7.3-php-cs-fixer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + php7.3-php-cs-fixer- + + - name: "Run friendsofphp/php-cs-fixer" + run: php7.3 vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose
Testing
$ vendor/bin/phpunit
Contributing
If you would like to help take a look at the list of issues and check our Contributing guild.
Note: please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Credits
License
The Narrowspark http-emitter is open-sourced software licensed under the MIT license