You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
906 B
36 lines
906 B
<?php |
|
|
|
/* |
|
* This file is part of the Symfony package. |
|
* |
|
* (c) Fabien Potencier <fabien@symfony.com> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
namespace Symfony\Component\Console\SignalRegistry; |
|
|
|
/** |
|
* @author Grégoire Pineau <lyrixx@lyrixx.info> |
|
*/ |
|
class SignalMap |
|
{ |
|
private static array $map; |
|
|
|
public static function getSignalName(int $signal): ?string |
|
{ |
|
if (!\extension_loaded('pcntl')) { |
|
return null; |
|
} |
|
|
|
if (!isset(self::$map)) { |
|
$r = new \ReflectionExtension('pcntl'); |
|
$c = $r->getConstants(); |
|
$map = array_filter($c, fn ($k) => str_starts_with($k, 'SIG') && !str_starts_with($k, 'SIG_'), \ARRAY_FILTER_USE_KEY); |
|
self::$map = array_flip($map); |
|
} |
|
|
|
return self::$map[$signal] ?? null; |
|
} |
|
}
|
|
|