Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: update rector.php #560

Merged
merged 11 commits into from
Dec 17, 2022
2 changes: 1 addition & 1 deletion .github/workflows/rector.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,5 @@ jobs:

- name: Analyze for refactoring
run: |
composer global require --dev rector/rector:^0.13.3
composer global require --dev rector/rector:^0.15.1
rector process --dry-run --no-progress-bar
5 changes: 4 additions & 1 deletion .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@
__DIR__ . '/tests/',
])
->exclude('build')
->append([__FILE__]);
->append([
__FILE__,
__DIR__ . '/rector.php',
]);

$overrides = [
'declare_strict_types' => true,
Expand Down
28 changes: 24 additions & 4 deletions rector.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
<?php

declare(strict_types=1);

use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector;
use Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector;
use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector;
use Rector\CodeQuality\Rector\For_\ForToForeachRector;
use Rector\CodeQuality\Rector\Foreach_\UnusedForeachValueToArrayKeysRector;
Expand Down Expand Up @@ -30,15 +33,24 @@
use Rector\Php56\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector;
use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector;
use Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\PHPUnit\Rector\Class_\AnnotationWithValueToAttributeRector;
use Rector\PHPUnit\Set\PHPUnitSetList;
use Rector\Privatization\Rector\Property\PrivatizeFinalClassPropertyRector;
use Rector\PSR4\Rector\FileWithoutNamespace\NormalizeNamespaceByPSR4ComposerAutoloadRector;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Set\ValueObject\SetList;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->sets([SetList::DEAD_CODE, LevelSetList::UP_TO_PHP_74, PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD, PHPUnitSetList::PHPUNIT_80]);
$rectorConfig->sets([
SetList::DEAD_CODE,
LevelSetList::UP_TO_PHP_74,
PHPUnitSetList::PHPUNIT_SPECIFIC_METHOD,
PHPUnitSetList::PHPUNIT_100,
]);

$rectorConfig->parallel();

// The paths to refactor (can also be supplied with CLI arguments)
$rectorConfig->paths([
__DIR__ . '/src/',
Expand Down Expand Up @@ -74,6 +86,7 @@

// Note: requires php 8
RemoveUnusedPromotedPropertyRector::class,
AnnotationWithValueToAttributeRector::class,

// Ignore tests that might make calls without a result
RemoveEmptyMethodCallRector::class => [
Expand All @@ -97,6 +110,9 @@
__DIR__ . '/src/Models/UserModel.php',
],
]);
// auto import fully qualified class names
$rectorConfig->importNames();

$rectorConfig->rule(SimplifyUselessVariableRector::class);
$rectorConfig->rule(RemoveAlwaysElseRector::class);
$rectorConfig->rule(CountArrayToEmptyArrayComparisonRector::class);
Expand All @@ -120,7 +136,11 @@
$rectorConfig->rule(SimplifyEmptyArrayCheckRector::class);
$rectorConfig->rule(NormalizeNamespaceByPSR4ComposerAutoloadRector::class);
$rectorConfig
->ruleWithConfiguration(TypedPropertyRector::class, [
TypedPropertyRector::INLINE_PUBLIC => false,
->ruleWithConfiguration(TypedPropertyFromAssignsRector::class, [
// Set to false if you use in libraries, or it does create breaking changes.
TypedPropertyFromAssignsRector::INLINE_PUBLIC => false,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It false by default, no need to define in config for false value

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It comes from a template file in devkit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For devkit, that can be on purpose so user know when to enable it, I think it can be removed in here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I followed the instruction in the devkit template.

If we need to remove the default value, please update the devkit comment.
Otherwise, the code will revert again when I or someone else copy the devkit template to update in the future.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, I created PR codeigniter4/devkit#61 for it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the config line.

]);
$rectorConfig->rule(StringClassNameToClassConstantRector::class);
$rectorConfig->rule(PrivatizeFinalClassPropertyRector::class);
$rectorConfig->rule(CompleteDynamicPropertiesRector::class);
};
2 changes: 1 addition & 1 deletion tests/Authentication/AuthenticationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/
final class AuthenticationTest extends DatabaseTestCase
{
protected Authentication $auth;
private Authentication $auth;

protected function setUp(): void
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
*/
final class AccessTokenAuthenticatorTest extends DatabaseTestCase
{
protected AccessTokens $auth;
private AccessTokens $auth;

protected function setUp(): void
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ final class SessionAuthenticatorTest extends TestCase
use DatabaseTestTrait;
use FakeUser;

protected Session $auth;
private Session $auth;
protected $namespace;
protected $events;
private MockEvents $events;

protected function setUp(): void
{
Expand Down
1 change: 1 addition & 0 deletions tests/Authentication/Filters/AbstractFilterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ abstract class AbstractFilterTest extends TestCase
use FeatureTestTrait;
use AuthenticationTesting;

protected string $routeFilter;
protected $namespace;
protected string $alias;
protected string $classname;
Expand Down
2 changes: 1 addition & 1 deletion tests/Authentication/HasAccessTokensTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/
final class HasAccessTokensTest extends DatabaseTestCase
{
protected User $user;
private User $user;

protected function setUp(): void
{
Expand Down
3 changes: 0 additions & 3 deletions tests/Authorization/AuthorizableTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,11 @@ final class AuthorizableTest extends TestCase

protected $refresh = true;
protected $namespace;
protected UserModel $model;

protected function setUp(): void
{
parent::setUp();

$this->model = new UserModel();

// Refresh should take care of this....
db_connect()->table('auth_groups_users')->truncate();
db_connect()->table('auth_permissions_users')->truncate();
Expand Down
4 changes: 2 additions & 2 deletions tests/Language/AbstractTranslationTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -305,12 +305,12 @@ final public function testAllConfiguredLanguageKeysAreInOrder(string $locale): v
/**
* @return string[][]
*/
final public function localesProvider(): iterable
final public static function localesProvider(): iterable
MGatner marked this conversation as resolved.
Show resolved Hide resolved
{
$locale = self::$locales[static::class] ?? null;

if (null === $locale) {
$this->fail('The locale code should be defined in the $locales property.');
static::fail('The locale code should be defined in the $locales property.');
}

return [$locale => [$locale]];
Expand Down
4 changes: 2 additions & 2 deletions tests/Unit/CompositionValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
*/
final class CompositionValidatorTest extends TestCase
{
protected CompositionValidator $validator;
protected Auth $config;
private CompositionValidator $validator;
private Auth $config;

protected function setUp(): void
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/DictionaryValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*/
final class DictionaryValidatorTest extends CIUnitTestCase
{
protected DictionaryValidator $validator;
private DictionaryValidator $validator;

protected function setUp(): void
{
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/FilterInCliTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public function testWhenInCliDoNothing(FilterInterface $filter): void
$filter->before($clirequest);
}

public function filterProvider(): Generator
public static function filterProvider(): Generator
{
yield from [
[new AuthRates()],
Expand Down
8 changes: 4 additions & 4 deletions tests/Unit/NothingPersonalValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*/
final class NothingPersonalValidatorTest extends CIUnitTestCase
{
protected NothingPersonalValidator $validator;
private NothingPersonalValidator $validator;

protected function setUp(): void
{
Expand Down Expand Up @@ -180,7 +180,7 @@ public function testIsNotPersonalFalsePositivesCaughtByIsNotSimilar($password):
$this->assertNotSame($isNotPersonal, $isNotSimilar);
}

public function passwordProvider(): array
public static function passwordProvider(): array
{
return [
['JoeTheCaptain'],
Expand Down Expand Up @@ -225,7 +225,7 @@ public function testConfigPersonalFieldsValues($firstName, $lastName, $expected)
$this->assertSame($expected, $result->isOK());
}

public function firstLastNameProvider()
public static function firstLastNameProvider()
{
return [
[
Expand Down Expand Up @@ -275,7 +275,7 @@ public function testMaxSimilarityZeroTurnsOffSimilarityCalculation($maxSimilarit
$this->assertSame($expected, $result->isOK());
}

public function maxSimilarityProvider()
public static function maxSimilarityProvider()
{
return [
[
Expand Down
2 changes: 1 addition & 1 deletion tests/Unit/PwnedValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/
final class PwnedValidatorTest extends CIUnitTestCase
{
protected PwnedValidator $validator;
private PwnedValidator $validator;

protected function setUp(): void
{
Expand Down