Skip to content

Commit 1c2cb4a

Browse files
authored
Updated ECS & checkstyle rules to latest standard (#60)
1 parent f679bd1 commit 1c2cb4a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+247
-311
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"phpunit/phpunit": "^9.5",
2222
"symfony/yaml": "^6.4|^7.4|^8.0",
2323
"phpstan/phpstan": "^1.7",
24-
"symplify/easy-coding-standard": "^11.3"
24+
"symplify/easy-coding-standard": "^13.0"
2525
},
2626
"autoload": {
2727
"psr-4": { "Yokai\\SecurityTokenBundle\\": "src/" }

ecs.php

Lines changed: 68 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,81 @@
33
declare(strict_types=1);
44

55
use PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\ForbiddenFunctionsSniff;
6+
use PhpCsFixer\Fixer\Basic\SingleLineEmptyBodyFixer;
7+
use PhpCsFixer\Fixer\CastNotation\CastSpacesFixer;
8+
use PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer;
9+
use PhpCsFixer\Fixer\ClassNotation\FinalClassFixer;
10+
use PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer;
611
use PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer;
12+
use PhpCsFixer\Fixer\FunctionNotation\NativeFunctionInvocationFixer;
13+
use PhpCsFixer\Fixer\LanguageConstruct\NullableTypeDeclarationFixer;
14+
use PhpCsFixer\Fixer\StringNotation\ExplicitStringVariableFixer;
15+
use PhpCsFixer\Fixer\Whitespace\BlankLineBeforeStatementFixer;
716
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer;
817
use Symplify\CodingStandard\Fixer\ArrayNotation\ArrayOpenerAndCloserNewlineFixer;
918
use Symplify\CodingStandard\Fixer\ArrayNotation\StandaloneLineInMultilineArrayFixer;
19+
use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer;
1020
use Symplify\EasyCodingStandard\Config\ECSConfig;
11-
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
1221

13-
return function (ECSConfig $ecsConfig): void {
14-
$ecsConfig->paths([
22+
return ECSConfig::configure()
23+
->withPaths([
1524
__DIR__ . '/src',
1625
__DIR__ . '/tests',
17-
]);
18-
19-
$ecsConfig->sets([
20-
SetList::ARRAY,
21-
SetList::DOCBLOCK,
22-
SetList::NAMESPACES,
23-
SetList::COMMENTS,
24-
SetList::STRICT,
25-
SetList::PSR_12,
26-
]);
27-
28-
$ecsConfig->skip([
29-
/* Do not force array on multiple lines : ['foo' => $foo, 'bar' => $bar] */
30-
ArrayOpenerAndCloserNewlineFixer::class,
31-
ArrayListItemNewlineFixer::class,
32-
StandaloneLineInMultilineArrayFixer::class,
33-
]);
34-
35-
$ecsConfig->ruleWithConfiguration(ForbiddenFunctionsSniff::class, [
26+
])
27+
->withPhpCsFixerSets(
28+
// https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/blob/master/doc/ruleSets/PER-CS2.0.rst
29+
perCS20: true,
30+
)
31+
->withPreparedSets(
32+
arrays: true,
33+
comments: true,
34+
docblocks: true,
35+
namespaces: true,
36+
phpunit: true,
37+
strict: true,
38+
)
39+
->withRules([
40+
FinalClassFixer::class,
41+
])
42+
->withConfiguredRule(BlankLineBeforeStatementFixer::class, [
43+
'statements' => ['case', 'continue', 'declare', 'default', 'return', 'throw', 'try'],
44+
])
45+
->withConfiguredRule(CastSpacesFixer::class, [
46+
'space' => 'none',
47+
])
48+
->withConfiguredRule(ForbiddenFunctionsSniff::class, [
3649
'forbiddenFunctions' => ['dump' => null, 'dd' => null, 'var_dump' => null, 'die' => null],
37-
]);
38-
$ecsConfig->ruleWithConfiguration(FunctionDeclarationFixer::class, [
50+
])
51+
->withConfiguredRule(FunctionDeclarationFixer::class, [
3952
'closure_fn_spacing' => 'none',
40-
]);
41-
};
53+
])
54+
->withConfiguredRule(LineLengthFixer::class, [
55+
LineLengthFixer::INLINE_SHORT_LINES => false,
56+
])
57+
->withConfiguredRule(NativeFunctionInvocationFixer::class, [
58+
'scope' => 'namespaced',
59+
'include' => ['@all'],
60+
])
61+
->withConfiguredRule(NullableTypeDeclarationFixer::class, [
62+
'syntax' => 'union',
63+
])
64+
->withConfiguredRule(YodaStyleFixer::class, [
65+
'equal' => false,
66+
'identical' => false,
67+
'less_and_greater' => false,
68+
])
69+
->withConfiguredRule(ClassDefinitionFixer::class, [
70+
'inline_constructor_arguments' => false,
71+
'space_before_parenthesis' => false,
72+
])
73+
->withSkip([
74+
ArrayListItemNewlineFixer::class,
75+
ArrayOpenerAndCloserNewlineFixer::class,
76+
ExplicitStringVariableFixer::class,
77+
SingleLineEmptyBodyFixer::class,
78+
StandaloneLineInMultilineArrayFixer::class,
79+
FinalClassFixer::class => [
80+
'src/Entity/',
81+
],
82+
])
83+
;

src/Archive/DeleteArchivist.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
*
1313
* @author Yann Eugoné <[email protected]>
1414
*/
15-
class DeleteArchivist implements ArchivistInterface
15+
final class DeleteArchivist implements ArchivistInterface
1616
{
1717
/**
1818
* @var EntityRepository
@@ -47,6 +47,6 @@ public function archive(string|null $purpose = null): int
4747
/** @var int|string $result */
4848
$result = $builder->getQuery()->execute();
4949

50-
return intval($result);
50+
return \intval($result);
5151
}
5252
}

src/Command/ArchiveTokenCommand.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
/**
1414
* @author Yann Eugoné <[email protected]>
1515
*/
16-
class ArchiveTokenCommand extends Command
16+
final class ArchiveTokenCommand extends Command
1717
{
1818
/**
1919
* @var ArchivistInterface
@@ -42,7 +42,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
4242
$count = $this->archivist->archive($purpose);
4343

4444
$output->writeln(
45-
sprintf('<info>Successfully archived <comment>%d</comment> security token(s).</info>', $count)
45+
\sprintf('<info>Successfully archived <comment>%d</comment> security token(s).</info>', $count),
4646
);
4747

4848
return 0;

src/Configuration/TokenConfiguration.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* @author Yann Eugoné <[email protected]>
1111
*/
12-
class TokenConfiguration
12+
final class TokenConfiguration
1313
{
1414
/**
1515
* @var string
@@ -47,7 +47,7 @@ public function __construct(
4747
string $duration,
4848
int $usages,
4949
string $keep,
50-
bool $unique
50+
bool $unique,
5151
) {
5252
$this->purpose = $purpose;
5353
$this->generator = $generator;

src/Configuration/TokenConfigurationRegistry.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* @author Yann Eugoné <[email protected]>
1111
*/
12-
class TokenConfigurationRegistry
12+
final class TokenConfigurationRegistry
1313
{
1414
/**
1515
* @var array<TokenConfiguration>
@@ -38,7 +38,7 @@ public function get(string $purpose): TokenConfiguration
3838
{
3939
if (!isset($this->configurations[$purpose])) {
4040
throw new BadMethodCallException(
41-
sprintf('There is no configured security token on "%s" purpose.', $purpose)
41+
\sprintf('There is no configured security token on "%s" purpose.', $purpose),
4242
);
4343
}
4444

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
/**
1212
* @author Yann Eugoné <[email protected]>
1313
*/
14-
class Configuration implements ConfigurationInterface
14+
final class Configuration implements ConfigurationInterface
1515
{
1616
public function getConfigTreeBuilder(): TreeBuilder
1717
{

src/DependencyInjection/Factory/TokenConfigurationFactory.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
/**
1414
* @author Yann Eugoné <[email protected]>
1515
*/
16-
class TokenConfigurationFactory
16+
final class TokenConfigurationFactory
1717
{
1818
public static function create(
1919
string $purpose,
@@ -22,18 +22,18 @@ public static function create(
2222
int $usages,
2323
string $keep,
2424
bool $unique,
25-
ContainerBuilder $container
25+
ContainerBuilder $container,
2626
): void {
27-
$id = sprintf('yokai_security_token.configuration.%s', $purpose);
27+
$id = \sprintf('yokai_security_token.configuration.%s', $purpose);
2828

2929
if ($container->hasDefinition($id)) {
3030
throw new BadMethodCallException(
31-
sprintf(
31+
\sprintf(
3232
'Cannot register service for security token on "%s" purpose.' .
3333
' A service with id "%s" is already registered.',
3434
$purpose,
35-
$id
36-
)
35+
$id,
36+
),
3737
);
3838
}
3939

@@ -46,7 +46,7 @@ public static function create(
4646
$usages,
4747
$keep,
4848
$unique,
49-
]
49+
],
5050
);
5151

5252
$definition->addTag('yokai_security_token.configuration');

src/DependencyInjection/YokaiSecurityTokenExtension.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
/**
2020
* @author Yann Eugoné <[email protected]>
2121
*/
22-
class YokaiSecurityTokenExtension extends Extension
22+
final class YokaiSecurityTokenExtension extends Extension
2323
{
2424
public function load(array $configs, ContainerBuilder $container): void
2525
{
@@ -43,7 +43,7 @@ private function registerTokens(array $config, ContainerBuilder $container): voi
4343
$token['usages'],
4444
$token['keep'],
4545
$token['unique'],
46-
$container
46+
$container,
4747
);
4848
}
4949
}
@@ -53,7 +53,7 @@ private function registerAliases(array $config, ContainerBuilder $container): vo
5353
$isTest = $container->getParameter('kernel.environment') === 'test';
5454

5555
foreach ($config['services'] as $name => $service) {
56-
$alias = $container->setAlias(sprintf('yokai_security_token.%s', $name), $service);
56+
$alias = $container->setAlias(\sprintf('yokai_security_token.%s', $name), $service);
5757
$alias->setPublic(true);
5858
}
5959
}
@@ -70,7 +70,7 @@ private function registerAutoconfigureAliases(ContainerBuilder $container): void
7070
];
7171

7272
foreach ($interfaceMap as $service => $interface) {
73-
$container->setAlias($interface, sprintf('yokai_security_token.%s', $service));
73+
$container->setAlias($interface, \sprintf('yokai_security_token.%s', $service));
7474
}
7575
}
7676
}

src/Entity/Token.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function __construct(
8888
string $keepDuration,
8989
int $allowedUsages = 1,
9090
array $payload = [],
91-
array $information = []
91+
array $information = [],
9292
) {
9393
$this->userClass = $userClass;
9494
$this->userId = $userId;
@@ -103,7 +103,7 @@ public function __construct(
103103
$this->usages = new ArrayCollection();
104104
}
105105

106-
public function getId(): ?int
106+
public function getId(): int|null
107107
{
108108
return $this->id;
109109
}
@@ -181,7 +181,7 @@ public function getAllowedUsages(): int
181181

182182
public function getCountUsages(): int
183183
{
184-
return count($this->usages);
184+
return \count($this->usages);
185185
}
186186

187187
/**
@@ -204,7 +204,7 @@ public function consume(array $information, DateTime|null $date = null): void
204204
{
205205
if ($this->isConsumed()) {
206206
throw new LogicException(
207-
sprintf('Token "%d" is already consumed.', $this->id)
207+
\sprintf('Token "%d" is already consumed.', $this->id),
208208
);
209209
}
210210

0 commit comments

Comments
 (0)