Skip to content

Commit

Permalink
Get rid of array_combine for traits list
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrejmirtes committed Feb 7, 2025
1 parent c7ba439 commit 36f3291
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/Reflection/ReflectionClass.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
use Traversable;
use UnitEnum;

use function array_combine;
use function array_filter;
use function array_key_exists;
use function array_keys;
Expand Down Expand Up @@ -419,14 +420,21 @@ private function createMethodsFromTrait(ReflectionMethod $method): array
}

if ($this->traitsData['aliases'] !== []) {
$traits = array_combine($this->traitClassNames, $this->getTraits());
$traits = [];
foreach ($this->getTraits() as $trait) {
$traits[$trait->getName()] = $trait;
}

foreach ($this->traitsData['aliases'] as $traitClassName => $traitAliasDefinitions) {
foreach ($traitAliasDefinitions as $traitAliasDefinition) {
if ($lowerCasedMethodHash !== $traitAliasDefinition['hash']) {
continue;
}

if (!array_key_exists($traitClassName, $traits)) {
continue;
}

if (! $traits[$traitClassName]->hasMethod($traitAliasDefinition['method'])) {
continue;
}
Expand Down Expand Up @@ -1433,11 +1441,17 @@ public function getTraitAliases(): array
return [];
}

$traits = array_combine($this->traitClassNames, $this->getTraits());
$traits = [];
foreach ($this->getTraits() as $trait) {
$traits[$trait->getName()] = $trait;
}
$traitAliases = [];

foreach ($this->traitsData['aliases'] as $traitClassName => $traitAliasDefinitions) {
foreach ($traitAliasDefinitions as $traitAliasDefinition) {
if (!array_key_exists($traitClassName, $traits)) {
continue;
}
if (! $traits[$traitClassName]->hasMethod($traitAliasDefinition['method'])) {
continue;
}
Expand Down

0 comments on commit 36f3291

Please sign in to comment.