narrowspark/php-cs-fixer-config
Provides a configuration for friendsofphp/php-cs-fixer, used within Narrowspark and Anolilab.
Maintainers
Package info
github.com/narrowspark/php-cs-fixer-config
pkg:composer/narrowspark/php-cs-fixer-config
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
Suggests
None
Provides
None
Conflicts
None
Replaces
None
MIT 867cfa69e3d2ed876cad560153415f336103621d
- Daniel Bannert <d.bannert.woop@anolilab.de>
This package is auto-updated.
Last update: 2023-03-07 06:14:54 UTC
README
π 68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6172726f77737061726b2f7068702d63732d66697865722d636f6e6669672e7376673f7374796c653d666c61742d737175617265
π 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e302e302d3838393242462e7376673f7374796c653d666c61742d737175617265
π 68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6e6172726f77737061726b2f7068702d63732d66697865722d636f6e6669672f6d61696e2e7376673f7374796c653d666c61742d737175617265
π 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265
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
