Skip to content

Commit

Permalink
Merge pull request #1081 from kenjis/refactor-update-rector-config
Browse files Browse the repository at this point in the history
refactor: replace empty() by rector
  • Loading branch information
kenjis authored Apr 5, 2024
2 parents 9ae1651 + f2571a9 commit 7088333
Show file tree
Hide file tree
Showing 13 changed files with 49 additions and 56 deletions.
43 changes: 4 additions & 39 deletions phpstan-baseline.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 2,
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Actions/Email2FA.php',
];
$ignoreErrors[] = [
Expand Down Expand Up @@ -45,7 +45,7 @@
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 4,
'count' => 2,
'path' => __DIR__ . '/src/Authentication/Authenticators/AccessTokens.php',
];
$ignoreErrors[] = [
Expand Down Expand Up @@ -95,16 +95,6 @@
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 3,
'path' => __DIR__ . '/src/Authentication/Authenticators/Session.php',
];
$ignoreErrors[] = [
'message' => '#^Only booleans are allowed in an elseif condition, string\\|null given\\.$#',
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Authenticators/Session.php',
];
$ignoreErrors[] = [
'message' => '#^Only booleans are allowed in an if condition, CodeIgniter\\\\Shield\\\\Entities\\\\UserIdentity\\|null given\\.$#',
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Authenticators/Session.php',
];
Expand All @@ -130,29 +120,14 @@
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Passwords.php',
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Passwords/CompositionValidator.php',
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 5,
'count' => 4,
'path' => __DIR__ . '/src/Authentication/Passwords/NothingPersonalValidator.php',
];
$ignoreErrors[] = [
'message' => '#^Call to method CodeIgniter\\\\Shield\\\\Result\\:\\:isOK\\(\\) with incorrect case\\: isOk$#',
'count' => 2,
'path' => __DIR__ . '/src/Authentication/Passwords/ValidationRules.php',
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 1,
'path' => __DIR__ . '/src/Authentication/Passwords/ValidationRules.php',
];
$ignoreErrors[] = [
'message' => '#^Only booleans are allowed in &&, CodeIgniter\\\\Shield\\\\Entities\\\\User\\|null given on the right side\\.$#',
'count' => 1,
Expand Down Expand Up @@ -249,11 +224,6 @@
'count' => 1,
'path' => __DIR__ . '/src/Entities/Entity.php',
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 2,
'path' => __DIR__ . '/src/Entities/Group.php',
];
$ignoreErrors[] = [
'message' => '#^Call to function model with CodeIgniter\\\\Shield\\\\Models\\\\GroupModel\\:\\:class is discouraged\\.$#',
'count' => 2,
Expand All @@ -276,7 +246,7 @@
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 8,
'count' => 7,
'path' => __DIR__ . '/src/Entities/User.php',
];
$ignoreErrors[] = [
Expand Down Expand Up @@ -366,11 +336,6 @@
'count' => 8,
'path' => __DIR__ . '/tests/Authentication/Authenticators/SessionAuthenticatorTest.php',
];
$ignoreErrors[] = [
'message' => '#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#',
'count' => 1,
'path' => __DIR__ . '/tests/Authentication/Filters/AbstractFilterTestCase.php',
];
$ignoreErrors[] = [
'message' => '#^Implicit array creation is not allowed \\- variable \\$users might not exist\\.$#',
'count' => 1,
Expand Down
25 changes: 25 additions & 0 deletions rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,28 @@
* the LICENSE file that was distributed with this source code.
*/

use Rector\Caching\ValueObject\Storage\FileCacheStorage;
use Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector;
use Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector;
use Rector\CodeQuality\Rector\Empty_\SimplifyEmptyCheckOnEmptyArrayRector;
use Rector\CodeQuality\Rector\Expression\InlineIfToExplicitIfRector;
use Rector\CodeQuality\Rector\Foreach_\UnusedForeachValueToArrayKeysRector;
use Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector;
use Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector;
use Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector;
use Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector;
use Rector\CodeQuality\Rector\FunctionLike\SimplifyUselessVariableRector;
use Rector\CodeQuality\Rector\If_\CombineIfRector;
use Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector;
use Rector\CodeQuality\Rector\If_\ShortenElseIfRector;
use Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector;
use Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector;
use Rector\CodeQuality\Rector\Ternary\TernaryEmptyArrayArrayDimFetchToCoalesceRector;
use Rector\CodeQuality\Rector\Ternary\UnnecessaryTernaryExpressionRector;
use Rector\CodingStyle\Rector\ClassMethod\FuncGetArgsToVariadicParamRector;
use Rector\CodingStyle\Rector\ClassMethod\MakeInheritedMethodVisibilitySameAsParentRector;
use Rector\CodingStyle\Rector\FuncCall\CountArrayToEmptyArrayComparisonRector;
use Rector\CodingStyle\Rector\FuncCall\VersionCompareFuncCallToConstantRector;
use Rector\Config\RectorConfig;
use Rector\DeadCode\Rector\Cast\RecastingRemovalRector;
use Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPromotedPropertyRector;
Expand All @@ -38,12 +44,16 @@
use Rector\EarlyReturn\Rector\Return_\PreparedValueToEarlyReturnRector;
use Rector\Php55\Rector\String_\StringClassNameToClassConstantRector;
use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector;
use Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector;
use Rector\PHPUnit\AnnotationsToAttributes\Rector\Class_\AnnotationWithValueToAttributeRector;
use Rector\PHPUnit\CodeQuality\Rector\Class_\YieldDataProviderRector;
use Rector\PHPUnit\Set\PHPUnitSetList;
use Rector\Privatization\Rector\Property\PrivatizeFinalClassPropertyRector;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Set\ValueObject\SetList;
use Rector\Strict\Rector\Empty_\DisallowedEmptyRuleFixerRector;
use Rector\Strict\Rector\If_\BooleanInIfConditionRuleFixerRector;
use Rector\TypeDeclaration\Rector\Empty_\EmptyOnNullableObjectToInstanceOfRector;
use Rector\ValueObject\PhpVersion;

return static function (RectorConfig $rectorConfig): void {
Expand All @@ -56,6 +66,12 @@

$rectorConfig->parallel();

// Github action cache
$rectorConfig->cacheClass(FileCacheStorage::class);
if (is_dir('/tmp')) {
$rectorConfig->cacheDirectory('/tmp/rector');
}

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

JsonThrowOnErrorRector::class,
StringifyStrNeedlesRector::class,
YieldDataProviderRector::class,

// Note: requires php 8
Expand Down Expand Up @@ -140,7 +157,15 @@
$rectorConfig->rule(FuncGetArgsToVariadicParamRector::class);
$rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class);
$rectorConfig->rule(SimplifyEmptyArrayCheckRector::class);
$rectorConfig->rule(SimplifyEmptyCheckOnEmptyArrayRector::class);
$rectorConfig->rule(TernaryEmptyArrayArrayDimFetchToCoalesceRector::class);
$rectorConfig->rule(EmptyOnNullableObjectToInstanceOfRector::class);
$rectorConfig->rule(DisallowedEmptyRuleFixerRector::class);
$rectorConfig->rule(StringClassNameToClassConstantRector::class);
$rectorConfig->rule(PrivatizeFinalClassPropertyRector::class);
$rectorConfig->rule(CompleteDynamicPropertiesRector::class);
$rectorConfig->rule(BooleanInIfConditionRuleFixerRector::class);
$rectorConfig->rule(SingleInArrayToCompareRector::class);
$rectorConfig->rule(VersionCompareFuncCallToConstantRector::class);
$rectorConfig->rule(ExplicitBoolCompareRector::class);
};
2 changes: 1 addition & 1 deletion src/Authentication/Actions/Email2FA.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public function handle(IncomingRequest $request)

$identity = $this->getIdentity($user);

if (empty($identity)) {
if (! $identity instanceof UserIdentity) {
return redirect()->route('auth-action-show')->with('error', lang('Auth.need2FA'));
}

Expand Down
4 changes: 2 additions & 2 deletions src/Authentication/Authenticators/AccessTokens.php
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ public function check(array $credentials): Result
*/
public function loggedIn(): bool
{
if (! empty($this->user)) {
if ($this->user instanceof User) {
return true;
}

Expand Down Expand Up @@ -226,7 +226,7 @@ public function loginById($userId): void
{
$user = $this->provider->findById($userId);

if (empty($user)) {
if (! $user instanceof User) {
throw AuthenticationException::forInvalidUser();
}

Expand Down
11 changes: 7 additions & 4 deletions src/Authentication/Authenticators/Session.php
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ public function checkAction(UserIdentity $identity, string $token): bool
throw new LogicException('Cannot get the User.');
}

if (empty($token) || $token !== $identity->secret) {
if ($token === '' || $token !== $identity->secret) {
return false;
}

Expand Down Expand Up @@ -485,7 +485,7 @@ private function setAuthAction(): bool

$identity = $this->userIdentityModel->getIdentityByType($this->user, $action->getType());

if ($identity) {
if ($identity instanceof UserIdentity) {
$this->userState = self::STATE_PENDING;

$this->setSessionKey('auth_action', $actionClass);
Expand Down Expand Up @@ -767,7 +767,7 @@ private function issueRememberMeToken(): void

// Reset so it doesn't mess up future calls.
$this->shouldRemember = false;
} elseif ($this->getRememberMeToken()) {
} elseif ($this->getRememberMeToken() !== null) {
$this->removeRememberCookie();

// @TODO delete the token record.
Expand Down Expand Up @@ -804,7 +804,7 @@ public function loginById($userId): void
{
$user = $this->provider->findById($userId);

if (empty($user)) {
if (! $user instanceof User) {
throw AuthenticationException::forInvalidUser();
}

Expand Down Expand Up @@ -935,6 +935,9 @@ private function calcExpires(): Time
return Time::createFromTimestamp($timestamp);
}

/**
* @param non-empty-string $rawToken
*/
private function setRememberMeCookie(string $rawToken): void
{
/** @var Response $response */
Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Passwords.php
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public function check(string $password, ?User $user = null): Result

$password = trim($password);

if (empty($password)) {
if ($password === '') {
return new Result([
'success' => false,
'reason' => lang('Auth.errorPasswordEmpty'),
Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Passwords/CompositionValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class CompositionValidator extends BaseValidator implements ValidatorInterface
*/
public function check(string $password, ?User $user = null): Result
{
if (empty($this->config->minimumPasswordLength)) {
if ($this->config->minimumPasswordLength === 0) {
throw AuthenticationException::forUnsetPasswordLength();
}

Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Passwords/NothingPersonalValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ protected function isNotPersonal(string $password, ?User $user): bool

// might be [email protected] and we want all the needles we can get
$emailParts = $this->strip_explode($localPart);
if (! empty($domain)) {
if ($domain !== null && $domain !== '') {
$emailParts[] = $domain;
}
$needles = [...$needles, ...$emailParts];
Expand Down
4 changes: 2 additions & 2 deletions src/Authentication/Passwords/ValidationRules.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,13 @@ public function strong_password(string $value, ?string &$error1 = null, array $d
$user = auth()->user();
} else {
/** @phpstan-ignore-next-line */
$user = empty($data) ? $this->buildUserFromRequest() : $this->buildUserFromData($data);
$user = $data === [] ? $this->buildUserFromRequest() : $this->buildUserFromData($data);
}

$result = $checker->check($value, $user);

if (! $result->isOk()) {
if (empty($data)) {
if ($data === []) {
$error1 = $result->reason();
} else {
$error2 = $result->reason();
Expand Down
2 changes: 1 addition & 1 deletion src/Authentication/Traits/HasAccessTokens.php
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ public function accessTokens(): array
*/
public function getAccessToken(?string $rawToken): ?AccessToken
{
if (empty($rawToken)) {
if ($rawToken === null || $rawToken === '') {
return null;
}

Expand Down
2 changes: 1 addition & 1 deletion src/Authorization/Traits/Authorizable.php
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ public function can(string ...$permissions): bool
return true;
}

if (! count($this->groupCache)) {
if (count($this->groupCache) === 0) {
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Entities/Group.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,14 +80,14 @@ public function can(string $permission): bool
$this->populatePermissions();

// Check exact match
if (! empty($this->permissions) && in_array($permission, $this->permissions, true)) {
if ($this->permissions !== null && $this->permissions !== [] && in_array($permission, $this->permissions, true)) {
return true;
}

// Check wildcard match
$check = substr($permission, 0, strpos($permission, '.')) . '.*';

return ! empty($this->permissions) && in_array($check, $this->permissions, true);
return $this->permissions !== null && $this->permissions !== [] && in_array($check, $this->permissions, true);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion tests/Authentication/Filters/AbstractFilterTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private function addRoutes(): void
{
$routes = service('routes');

$filterString = ! empty($this->routeFilter)
$filterString = isset($this->routeFilter) && ($this->routeFilter !== '')
? $this->routeFilter
: $this->alias;

Expand Down

0 comments on commit 7088333

Please sign in to comment.