-
-
Notifications
You must be signed in to change notification settings - Fork 357
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
[Php] Fix filter cache on PolyfillPackagesProvider #5390
Conversation
@@ -50,7 +52,7 @@ public function provide(): array | |||
*/ | |||
private function filterPolyfillPackages(array $require): array | |||
{ | |||
return array_filter($require, static fn (string $packageName): bool => ! str_starts_with( | |||
return array_filter(array_keys($require), static fn (string $packageName): bool => str_starts_with( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here only key
is needed, when we define in composer.json
"require": {
"symfony/polyfill-php80" => "*"
}
then, filter the str_starts_with()
one instead, so it get data:
array('symfony/polyfill-php80')
to compare with in_array()
on PhpVersionedFilter
rector-src/packages/VersionBonding/PhpVersionedFilter.php
Lines 32 to 37 in 6ebab94
$polyfillPackageNames = $this->polyfillPackagesProvider->provide(); | |
if (in_array($rector->providePolyfillPackage(), $polyfillPackageNames, true)) { | |
$activeRectors[] = $rector; | |
continue; | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I created e2e test for it:
if (! file_exists($projectComposerJson)) { | ||
return []; | ||
// already cached, even only empty array | ||
if ($this->cachedPolyfillPackages !== null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here compare no null = already cached.
All checks have passed 🎉 @TomasVotruba I am merging it ;) |
Awesome, thanks for catching the glitches 👌 |
Ref #5388 (review)