Skip to content

Commit c47f15e

Browse files
committed
api: setup rector again to keep our codebase up to date
Exclude some controversial rules for now. This documents the rules which were used for the last run. No enforcement right now, just enablement. It also helped with fixing phpunit deprecations.
1 parent 96ccd30 commit c47f15e

File tree

101 files changed

+804
-764
lines changed

Some content is hidden

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

101 files changed

+804
-764
lines changed

api/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,8 @@
141141
],
142142
"psalm": [
143143
"psalm.phar"
144-
]
144+
],
145+
"rector": "vendor/bin/rector"
145146
},
146147
"conflict": {
147148
"symfony/dependency-injection": "5.3.7",

api/rector.php

Lines changed: 51 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,57 @@
22

33
declare(strict_types=1);
44

5-
use Rector\Core\Configuration\Option;
6-
use Rector\Doctrine\Set\DoctrineSetList;
7-
use Rector\Php74\Rector\Property\TypedPropertyRector;
8-
use Rector\Set\ValueObject\SetList;
9-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
5+
use Rector\CodeQuality\Rector\Catch_\ThrowWithPreviousExceptionRector;
6+
use Rector\CodeQuality\Rector\ClassMethod\LocallyCalledStaticMethodToNonStaticRector;
7+
use Rector\CodeQuality\Rector\Equal\UseIdenticalOverEqualWithSameTypeRector;
8+
use Rector\CodeQuality\Rector\Identical\FlipTypeControlToUseExclusiveTypeRector;
9+
use Rector\CodeQuality\Rector\If_\CombineIfRector;
10+
use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector;
11+
use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector;
12+
use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector;
13+
use Rector\Config\RectorConfig;
14+
use Rector\DeadCode\Rector\If_\RemoveDeadInstanceOfRector;
15+
use Rector\Doctrine\Bundle230\Rector\Class_\AddAnnotationToRepositoryRector;
16+
use Rector\PHPUnit\CodeQuality\Rector\Class_\PreferPHPUnitThisCallRector;
17+
use Rector\PHPUnit\CodeQuality\Rector\ClassMethod\AddInstanceofAssertForNullableInstanceRector;
18+
use Rector\PHPUnit\CodeQuality\Rector\MethodCall\AssertEmptyNullableObjectToAssertInstanceofRector;
19+
use Rector\Privatization\Rector\Class_\FinalizeTestCaseClassRector;
20+
use Rector\Renaming\Rector\FuncCall\RenameFunctionRector;
21+
use Rector\Strict\Rector\Empty_\DisallowedEmptyRuleFixerRector;
22+
use Rector\TypeDeclaration\Rector\StmtsAwareInterface\DeclareStrictTypesRector;
1023

11-
return static function (ContainerConfigurator $containerConfigurator): void {
12-
// get parameters
13-
$parameters = $containerConfigurator->parameters();
14-
$parameters->set(Option::PATHS, [
24+
// @noinspection PhpUnhandledExceptionInspection
25+
return RectorConfig::configure()
26+
->withPaths([
27+
__DIR__.'/public',
28+
__DIR__.'/config',
29+
__DIR__.'/migrations',
1530
__DIR__.'/src',
1631
__DIR__.'/tests',
17-
]);
18-
$parameters->set(Option::AUTO_IMPORT_NAMES, true);
19-
$parameters->set(Option::IMPORT_SHORT_CLASSES, false);
20-
$parameters->set(Option::APPLY_AUTO_IMPORT_NAMES_ON_CHANGED_FILES_ONLY, true);
21-
22-
// Define what rule sets will be applied
23-
$containerConfigurator->import(DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES);
24-
25-
// $containerConfigurator->import(SetList::DEAD_CODE);
26-
// $containerConfigurator->import(SetList::CODE_QUALITY);
27-
// $containerConfigurator->import(SetList::CODING_STYLE);
28-
// $containerConfigurator->import(SetList::PHP_80);
29-
30-
// get services (needed for register a single rule)
31-
// $services = $containerConfigurator->services();
32-
33-
// register a single rule
34-
// $services->set(TypedPropertyRector::class);
35-
};
32+
])
33+
->withComposerBased(doctrine: true, phpunit: true, symfony: true)
34+
->withPreparedSets(deadCode: true, codeQuality: true, privatization: true, rectorPreset: true, phpunitCodeQuality: true, symfonyCodeQuality: true)
35+
->withAttributesSets(all: true)
36+
->withConfiguredRule(RenameFunctionRector::class, [
37+
'implode' => 'join',
38+
'join' => 'join',
39+
])
40+
->withSkip([
41+
AddAnnotationToRepositoryRector::class,
42+
AddInstanceofAssertForNullableInstanceRector::class,
43+
AssertEmptyNullableObjectToAssertInstanceofRector::class,
44+
CombineIfRector::class,
45+
DeclareStrictTypesRector::class,
46+
DisallowedEmptyRuleFixerRector::class,
47+
ExplicitBoolCompareRector::class,
48+
FinalizeTestCaseClassRector::class,
49+
FlipTypeControlToUseExclusiveTypeRector::class,
50+
LocallyCalledStaticMethodToNonStaticRector::class,
51+
PreferPHPUnitThisCallRector::class,
52+
RemoveDeadInstanceOfRector::class,
53+
SimplifyIfElseToTernaryRector::class,
54+
SimplifyIfReturnBoolRector::class,
55+
ThrowWithPreviousExceptionRector::class,
56+
UseIdenticalOverEqualWithSameTypeRector::class,
57+
])
58+
;

api/src/Controller/CevidbController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class CevidbController extends AbstractController {
1212
* Link to this controller to start the "connect" process.
1313
*/
1414
#[Route('/auth/cevidb', name: 'connect_cevidb_start')]
15-
public function connectAction(Request $request, ClientRegistry $clientRegistry) {
15+
public function connect(Request $request, ClientRegistry $clientRegistry) {
1616
return $clientRegistry
1717
->getClient('cevidb') // key used in config/packages/knpu_oauth2_client.yaml
1818
->redirect([], ['additionalData' => ['callback' => $request->get('callback')]])
@@ -25,7 +25,7 @@ public function connectAction(Request $request, ClientRegistry $clientRegistry)
2525
* in config/packages/knpu_oauth2_client.yaml.
2626
*/
2727
#[Route('/auth/cevidb/callback', name: 'connect_cevidb_check')]
28-
public function connectCheckAction(Request $request, ClientRegistry $clientRegistry) {
28+
public function connectCheck(ClientRegistry $clientRegistry) {
2929
// ** if you want to *authenticate* the user, then
3030
// leave this method blank and create a custom authenticator
3131
}

api/src/Controller/GoogleController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class GoogleController extends AbstractController {
1212
* Link to this controller to start the "connect" process.
1313
*/
1414
#[Route('/auth/google', name: 'connect_google_start')]
15-
public function connectAction(Request $request, ClientRegistry $clientRegistry) {
15+
public function connect(Request $request, ClientRegistry $clientRegistry) {
1616
return $clientRegistry
1717
->getClient('google') // key used in config/packages/knpu_oauth2_client.yaml
1818
->redirect([], ['additionalData' => ['callback' => $request->get('callback')]])
@@ -25,7 +25,7 @@ public function connectAction(Request $request, ClientRegistry $clientRegistry)
2525
* in config/packages/knpu_oauth2_client.yaml.
2626
*/
2727
#[Route('/auth/google/callback', name: 'connect_google_check')]
28-
public function connectCheckAction(Request $request, ClientRegistry $clientRegistry) {
28+
public function connectCheck(ClientRegistry $clientRegistry) {
2929
// ** if you want to *authenticate* the user, then
3030
// leave this method blank and create a custom authenticator
3131
}

api/src/Controller/JubladbController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class JubladbController extends AbstractController {
1212
* Link to this controller to start the "connect" process.
1313
*/
1414
#[Route('/auth/jubladb', name: 'connect_jubladb_start')]
15-
public function connectAction(Request $request, ClientRegistry $clientRegistry) {
15+
public function connect(Request $request, ClientRegistry $clientRegistry) {
1616
return $clientRegistry
1717
->getClient('jubladb') // key used in config/packages/knpu_oauth2_client.yaml
1818
->redirect([], ['additionalData' => ['callback' => $request->get('callback')]])
@@ -25,7 +25,7 @@ public function connectAction(Request $request, ClientRegistry $clientRegistry)
2525
* in config/packages/knpu_oauth2_client.yaml.
2626
*/
2727
#[Route('/auth/jubladb/callback', name: 'connect_jubladb_check')]
28-
public function connectCheckAction(Request $request, ClientRegistry $clientRegistry) {
28+
public function connectCheck(ClientRegistry $clientRegistry) {
2929
// ** if you want to *authenticate* the user, then
3030
// leave this method blank and create a custom authenticator
3131
}

api/src/Controller/PbsmidataController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class PbsmidataController extends AbstractController {
1212
* Link to this controller to start the "connect" process.
1313
*/
1414
#[Route('/auth/pbsmidata', name: 'connect_pbsmidata_start')]
15-
public function connectAction(Request $request, ClientRegistry $clientRegistry) {
15+
public function connect(Request $request, ClientRegistry $clientRegistry) {
1616
return $clientRegistry
1717
->getClient('pbsmidata') // key used in config/packages/knpu_oauth2_client.yaml
1818
->redirect([], ['additionalData' => ['callback' => $request->get('callback')]])
@@ -25,7 +25,7 @@ public function connectAction(Request $request, ClientRegistry $clientRegistry)
2525
* in config/packages/knpu_oauth2_client.yaml.
2626
*/
2727
#[Route('/auth/pbsmidata/callback', name: 'connect_pbsmidata_check')]
28-
public function connectCheckAction(Request $request, ClientRegistry $clientRegistry) {
28+
public function connectCheck(ClientRegistry $clientRegistry) {
2929
// ** if you want to *authenticate* the user, then
3030
// leave this method blank and create a custom authenticator
3131
}

api/src/Doctrine/Filter/ContentNodeCampFilter.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,11 @@ public function __construct(
3232

3333
// This function is only used to hook in documentation generators (supported by Swagger and Hydra)
3434
public function getDescription(string $resourceClass): array {
35-
$description = [];
36-
$description['camp'] = [
35+
return ['camp' => [
3736
'property' => self::CAMP_QUERY_NAME,
3837
'type' => Type::BUILTIN_TYPE_STRING,
3938
'required' => false,
40-
];
41-
42-
return $description;
39+
]];
4340
}
4441

4542
protected function filterProperty(

api/src/Doctrine/Filter/ContentNodeIsRootFilter.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,11 @@ public function __construct(
2626

2727
// This function is only used to hook in documentation generators (supported by Swagger and Hydra)
2828
public function getDescription(string $resourceClass): array {
29-
$description = [];
30-
$description['isRoot'] = [
29+
return ['isRoot' => [
3130
'property' => self::IS_ROOT_QUERY_NAME,
3231
'type' => Type::BUILTIN_TYPE_BOOL,
3332
'required' => false,
34-
];
35-
36-
return $description;
33+
]];
3734
}
3835

3936
protected function filterProperty(

api/src/Doctrine/Filter/ContentNodePeriodFilter.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,11 @@ public function __construct(
3333

3434
// This function is only used to hook in documentation generators (supported by Swagger and Hydra)
3535
public function getDescription(string $resourceClass): array {
36-
$description = [];
37-
$description['period'] = [
36+
return ['period' => [
3837
'property' => self::PERIOD_QUERY_NAME,
3938
'type' => Type::BUILTIN_TYPE_STRING,
4039
'required' => false,
41-
];
42-
43-
return $description;
40+
]];
4441
}
4542

4643
protected function filterProperty(

api/src/Doctrine/Filter/MaterialItemPeriodFilter.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,11 @@ public function __construct(
2929

3030
// This function is only used to hook in documentation generators (supported by Swagger and Hydra)
3131
public function getDescription(string $resourceClass): array {
32-
$description = [];
33-
$description['period'] = [
32+
return ['period' => [
3433
'property' => self::PERIOD_QUERY_NAME,
3534
'type' => Type::BUILTIN_TYPE_STRING,
3635
'required' => false,
37-
];
38-
39-
return $description;
36+
]];
4037
}
4138

4239
protected function filterProperty(

0 commit comments

Comments
 (0)