- The PHP_CodeSniffer and cs-fixer rules to check that repositories are following the unified coding standard for Brand Embassy projects.
- The PHPStan default configuration file.
- PhpStorm code style and inspections (with Php Inspections (EA Extended) plugin) configuration files.
For full reference of enforcements, go through default-ecs.php where each sniff / fixer deviating from default set lists is briefly described.
@TODO list of important sniffs
Skipping of sniffs / fixers in general or for particular files should be configured in the ecs.php of your project. This file should leverage the default-ecs.php as the default configuration, but it expected that you will make adjustments to fit your project needs.
You can install the Brand Embassy Coding Standard as a composer dependency to your project:
$ composer require --dev brandembassy/coding-standardYou can run ecs with this command (without performing automatic fixes):
$ ./vendor/bin/ecs check --ansiOr with automatic fixes:
$ ./vendor/bin/ecs check --ansi --fixYou can use the --clear-cache option to clear the cache before applying the fixers and sniffers:
$ ./vendor/bin/ecs check --ansi --fix --clear-cache- includes phpstan-strict-rules extension
- includes phpstan-nette extension
- includes max level configuration by default
To use default configuration include default-phpstan.neon in your project's PHPStan config:
includes:
- vendor/brandembassy/coding-standard/integration-phpstan.neonTo use default configuration require default-rector.php in your project's Rector config:
$rectorConfigBuilder = RectorConfig::configure();
$defaultRectorConfigurationSetup = require __DIR__ . '/vendor/brandembassy/coding-standard/default-rector.php';
$defaultSkipList = $defaultRectorConfigurationSetup($rectorConfigBuilder);
// You can skip unwanted rules here
$skipList = array_merge(
$defaultSkipList,
[
'*/__fixtures__/*',
NewlineAfterStatementRector::class, // might conflict with ECS
],
);
// You can override/append to the default configuration here
$rectorConfigBuilder
->withPHPStanConfigs([__DIR__ . '/phpstan.neon'])
->withCache('./var/temp/rector', FileCacheStorage::class)
->withSkip($skipList);
return $rectorConfigBuilder;This project contains inspections and code style configurations for PhpStorm.
BrandEmbassyCodeStyle.xmlBrandEmbassyInspections.xml
Importing these configurations reduces number of errors in phpcs check before committing.
This library follows semantic versioning, and additions to the code ruleset are only performed in major releases.
@TODO: inspiration - https://github.com/doctrine/coding-standard/tree/master/tests
If you are contributing to the Brand Embassy Coding Standard and want to test your contribution, you just need to execute PHPCS with the tests folder and ensure it matches the expected report:
$ ./vendor/bin/phpcs tests/input --report=summary --report-file=phpcs.log; diff tests/expected_report.txt phpcs.log