| Server IP : 213.136.93.164 / Your IP : 216.73.216.104 Web Server : Apache System : Linux m14200.contabo.net 5.14.0-611.54.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 6 18:03:03 EDT 2026 x86_64 User : ki692510 ( 1047) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/cpanel/ea-wappspector/vendor/rector/rector/src/Configuration/Levels/ |
Upload File : |
<?php
declare (strict_types=1);
namespace Rector\Configuration\Levels;
use Rector\Contract\Rector\RectorInterface;
use Rector\Exception\ShouldNotHappenException;
use RectorPrefix202411\Webmozart\Assert\Assert;
final class LevelRulesResolver
{
/**
* @param array<class-string<RectorInterface>> $availableRules
* @return array<class-string<RectorInterface>>
*/
public static function resolve(int $level, array $availableRules, string $methodName) : array
{
// level < 0 is not allowed
Assert::natural($level, \sprintf('Level must be >= 0 on %s', $methodName));
Assert::allIsAOf($availableRules, RectorInterface::class);
$rulesCount = \count($availableRules);
if ($availableRules === []) {
throw new ShouldNotHappenException(\sprintf('There are no available rules in "%s()", define the available rules first', $methodName));
}
// start with 0
$maxLevel = $rulesCount - 1;
if ($level > $maxLevel) {
$level = $maxLevel;
}
$levelRules = [];
for ($i = 0; $i <= $level; ++$i) {
$levelRules[] = $availableRules[$i];
}
return $levelRules;
}
}