Skip to content

Commit

Permalink
Merge pull request #750 from tarlepp/refactor/ecs-configuration
Browse files Browse the repository at this point in the history
Refactor: ECS configuration
  • Loading branch information
tarlepp committed Oct 12, 2020
2 parents b74ac9c + 9f8e649 commit efe1e37
Show file tree
Hide file tree
Showing 4 changed files with 181 additions and 63 deletions.
6 changes: 4 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -190,15 +190,17 @@ endif
ecs: ## Runs The Easiest Way to Use Any Coding Standard
ifeq ($(INSIDE_DOCKER), 1)
@echo "\033[32mRunning EasyCodingStandard\033[39m"
@php -d error_reporting=0 ./vendor/bin/ecs --clear-cache check src tests
@php ./vendor/bin/ecs --version
@php ./vendor/bin/ecs --clear-cache check src tests
else
$(WARNING_DOCKER)
endif

ecs-fix: ## Runs The Easiest Way to Use Any Coding Standard to fix issues
ifeq ($(INSIDE_DOCKER), 1)
@echo "\033[32mRunning EasyCodingStandard\033[39m"
@php -d error_reporting=0 ./vendor/bin/ecs --clear-cache --fix check src tests
@php ./vendor/bin/ecs --version
@php ./vendor/bin/ecs --clear-cache --fix check src tests
else
$(WARNING_DOCKER)
endif
Expand Down
5 changes: 4 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,10 @@
"Liuggio\\Fastest\\": [
"tools/01_phpunit/vendor/liuggio/fastest/src",
"tools/01_phpunit/vendor/liuggio/fastest/adapters"
]
],
"PhpCsFixer\\": "tools/04_ecs/vendor/friendsofphp/php-cs-fixer/src",
"SlevomatCodingStandard\\": "tools/04_ecs/vendor/slevomat/coding-standard/SlevomatCodingStandard",
"Symplify\\CodingStandard\\": "tools/04_ecs/vendor/symplify/coding-standard/src"
}
},
"prefer-stable": true,
Expand Down
173 changes: 173 additions & 0 deletions ecs.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
<?php
declare(strict_types = 1);
/**
* /ecs.php
*
* Configuration for `EasyCodingStandard` tool.
*
* @author TLe, Tarmo Leppänen <tarmo.leppanen@pinja.com>
*/

use PhpCsFixer\Fixer\ArrayNotation\NoMultilineWhitespaceAroundDoubleArrowFixer;
use PhpCsFixer\Fixer\CastNotation\CastSpacesFixer;
use PhpCsFixer\Fixer\ClassNotation\ClassAttributesSeparationFixer;
use PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer;
use PhpCsFixer\Fixer\FunctionNotation\SingleLineThrowFixer;
use PhpCsFixer\Fixer\Import\OrderedImportsFixer;
use PhpCsFixer\Fixer\LanguageConstruct\DeclareEqualNormalizeFixer;
use PhpCsFixer\Fixer\NamespaceNotation\NoBlankLinesBeforeNamespaceFixer;
use PhpCsFixer\Fixer\Operator\ConcatSpaceFixer;
use PhpCsFixer\Fixer\Operator\IncrementStyleFixer;
use PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer;
use PhpCsFixer\Fixer\Phpdoc\NoSuperfluousPhpdocTagsFixer;
use PhpCsFixer\Fixer\Phpdoc\PhpdocAlignFixer;
use PhpCsFixer\Fixer\Phpdoc\PhpdocNoPackageFixer;
use PhpCsFixer\Fixer\Phpdoc\PhpdocSeparationFixer;
use PhpCsFixer\Fixer\Phpdoc\PhpdocSummaryFixer;
use PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer;
use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer;
use SlevomatCodingStandard\Sniffs\Functions\UnusedParameterSniff;
use SlevomatCodingStandard\Sniffs\Whitespaces\DuplicateSpacesSniff;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer;
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer;
use Symplify\CodingStandard\Fixer\Commenting\ParamReturnAndVarTagMalformsFixer;
use Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer;

return static function (ContainerConfigurator $containerConfigurator): void {
$imports = [
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/psr12.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/php70.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/php71.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/clean-code.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/common.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/dead-code.php',
'/tools/04_ecs/vendor/symplify/easy-coding-standard/config/set/symfony.php',
];

array_map(
[$containerConfigurator, 'import'],
array_map(static fn (string $path): string => __DIR__ . $path, $imports)
);

$services = $containerConfigurator->services();

$services
->set(IncrementStyleFixer::class)
->call(
'configure',
[
[
'style' => 'post',
],
],
);

$services
->set(YodaStyleFixer::class)
->call(
'configure',
[
[
'equal' => false,
'identical' => false,
'less_and_greater' => false,
],
],
);

$services
->set(ConcatSpaceFixer::class)
->call(
'configure',
[
[
'spacing' => 'one',
],
],
);

$services
->set(CastSpacesFixer::class)
->call(
'configure',
[
[
'space' => 'none',
],
],
);

$services
->set(OrderedImportsFixer::class)
->call(
'configure',
[
[
'imports_order' => ['class', 'function', 'const'],
],
],
);

$services
->set(NoSuperfluousPhpdocTagsFixer::class)
->call(
'configure',
[
[
'remove_inheritdoc' => false,
'allow_mixed' => true,
'allow_unused_params' => false,
],
],
);

$services
->set(DeclareEqualNormalizeFixer::class)
->call(
'configure',
[
[
'space' => 'single',
],
],
);

$services
->set(BlankLineBeforeStatementFixer::class)
->call(
'configure',
[
[
'statements' => ['continue', 'declare', 'return', 'throw', 'try'],
],
],
);

$services
->set(DuplicateSpacesSniff::class)
->property('ignoreSpacesInAnnotation', true);

$parameters = $containerConfigurator->parameters();

$parameters->set(
'skip',
[
NoMultilineWhitespaceAroundDoubleArrowFixer::class => null,
PhpdocNoPackageFixer::class => null,
PhpdocSummaryFixer::class => null,
PhpdocSeparationFixer::class => null,
BlankLineAfterOpeningTagFixer::class => null,
ClassAttributesSeparationFixer::class => null,
NoBlankLinesBeforeNamespaceFixer::class => null,
NotOperatorWithSuccessorSpaceFixer::class => null,
SingleLineThrowFixer::class => null,
BlankLineAfterStrictTypesFixer::class => null,
ParamReturnAndVarTagMalformsFixer::class => null,
ArrayOpenerAndCloserNewlineFixer::class => null,
ArrayListItemNewlineFixer::class => null,
PhpdocAlignFixer::class => null,
UnusedParameterSniff::class => null,
]
);
};
60 changes: 0 additions & 60 deletions ecs.yaml

This file was deleted.

0 comments on commit efe1e37

Please sign in to comment.