Aggiornato Composer
This commit is contained in:
@@ -21,7 +21,6 @@ use Ramsey\Uuid\Type\Integer as IntegerObject;
|
||||
use function escapeshellarg;
|
||||
use function preg_split;
|
||||
use function str_getcsv;
|
||||
use function strpos;
|
||||
use function strrpos;
|
||||
use function strtolower;
|
||||
use function strtoupper;
|
||||
@@ -42,6 +41,7 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
*/
|
||||
public function getUid(): IntegerObject
|
||||
{
|
||||
/** @var int|float|string|IntegerObject|null $uid */
|
||||
static $uid = null;
|
||||
|
||||
if ($uid instanceof IntegerObject) {
|
||||
@@ -72,6 +72,7 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
*/
|
||||
public function getGid(): IntegerObject
|
||||
{
|
||||
/** @var int|float|string|IntegerObject|null $gid */
|
||||
static $gid = null;
|
||||
|
||||
if ($gid instanceof IntegerObject) {
|
||||
@@ -104,15 +105,10 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
return '';
|
||||
}
|
||||
|
||||
switch ($this->getOs()) {
|
||||
case 'WIN':
|
||||
return $this->getWindowsUid();
|
||||
case 'DAR':
|
||||
case 'FRE':
|
||||
case 'LIN':
|
||||
default:
|
||||
return trim((string) shell_exec('id -u'));
|
||||
}
|
||||
return match ($this->getOs()) {
|
||||
'WIN' => $this->getWindowsUid(),
|
||||
default => trim((string) shell_exec('id -u')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -124,15 +120,10 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
return '';
|
||||
}
|
||||
|
||||
switch ($this->getOs()) {
|
||||
case 'WIN':
|
||||
return $this->getWindowsGid();
|
||||
case 'DAR':
|
||||
case 'FRE':
|
||||
case 'LIN':
|
||||
default:
|
||||
return trim((string) shell_exec('id -g'));
|
||||
}
|
||||
return match ($this->getOs()) {
|
||||
'WIN' => $this->getWindowsGid(),
|
||||
default => trim((string) shell_exec('id -g')),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,7 +133,7 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
{
|
||||
$disabledFunctions = strtolower((string) ini_get('disable_functions'));
|
||||
|
||||
return strpos($disabledFunctions, 'shell_exec') === false;
|
||||
return !str_contains($disabledFunctions, 'shell_exec');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,7 +141,13 @@ class SystemDceSecurityProvider implements DceSecurityProviderInterface
|
||||
*/
|
||||
private function getOs(): string
|
||||
{
|
||||
return strtoupper(substr(constant('PHP_OS'), 0, 3));
|
||||
/**
|
||||
* @psalm-suppress UnnecessaryVarAnnotation
|
||||
* @var string $phpOs
|
||||
*/
|
||||
$phpOs = constant('PHP_OS');
|
||||
|
||||
return strtoupper(substr($phpOs, 0, 3));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,24 +24,18 @@ use Ramsey\Uuid\Type\Hexadecimal;
|
||||
*/
|
||||
class FallbackNodeProvider implements NodeProviderInterface
|
||||
{
|
||||
/**
|
||||
* @var iterable<NodeProviderInterface>
|
||||
*/
|
||||
private $nodeProviders;
|
||||
|
||||
/**
|
||||
* @param iterable<NodeProviderInterface> $providers Array of node providers
|
||||
*/
|
||||
public function __construct(iterable $providers)
|
||||
public function __construct(private iterable $providers)
|
||||
{
|
||||
$this->nodeProviders = $providers;
|
||||
}
|
||||
|
||||
public function getNode(): Hexadecimal
|
||||
{
|
||||
$lastProviderException = null;
|
||||
|
||||
foreach ($this->nodeProviders as $provider) {
|
||||
foreach ($this->providers as $provider) {
|
||||
try {
|
||||
return $provider->getNode();
|
||||
} catch (NodeException $exception) {
|
||||
|
||||
@@ -32,10 +32,7 @@ use const STR_PAD_LEFT;
|
||||
*/
|
||||
class StaticNodeProvider implements NodeProviderInterface
|
||||
{
|
||||
/**
|
||||
* @var Hexadecimal
|
||||
*/
|
||||
private $node;
|
||||
private Hexadecimal $node;
|
||||
|
||||
/**
|
||||
* @param Hexadecimal $node The static node value to use
|
||||
|
||||
@@ -27,8 +27,8 @@ use function ob_start;
|
||||
use function preg_match;
|
||||
use function preg_match_all;
|
||||
use function reset;
|
||||
use function str_contains;
|
||||
use function str_replace;
|
||||
use function strpos;
|
||||
use function strtolower;
|
||||
use function strtoupper;
|
||||
use function substr;
|
||||
@@ -100,12 +100,18 @@ class SystemNodeProvider implements NodeProviderInterface
|
||||
{
|
||||
$disabledFunctions = strtolower((string) ini_get('disable_functions'));
|
||||
|
||||
if (strpos($disabledFunctions, 'passthru') !== false) {
|
||||
if (str_contains($disabledFunctions, 'passthru')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @psalm-suppress UnnecessaryVarAnnotation
|
||||
* @var string $phpOs
|
||||
*/
|
||||
$phpOs = constant('PHP_OS');
|
||||
|
||||
ob_start();
|
||||
switch (strtoupper(substr(constant('PHP_OS'), 0, 3))) {
|
||||
switch (strtoupper(substr($phpOs, 0, 3))) {
|
||||
case 'WIN':
|
||||
passthru('ipconfig /all 2>&1');
|
||||
|
||||
@@ -127,12 +133,15 @@ class SystemNodeProvider implements NodeProviderInterface
|
||||
|
||||
$ifconfig = (string) ob_get_clean();
|
||||
|
||||
$node = '';
|
||||
if (preg_match_all(self::IFCONFIG_PATTERN, $ifconfig, $matches, PREG_PATTERN_ORDER)) {
|
||||
$node = $matches[1][0] ?? '';
|
||||
foreach ($matches[1] as $iface) {
|
||||
if ($iface !== '00:00:00:00:00:00' && $iface !== '00-00-00-00-00-00') {
|
||||
return $iface;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $node;
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,13 +151,20 @@ class SystemNodeProvider implements NodeProviderInterface
|
||||
{
|
||||
$mac = '';
|
||||
|
||||
if (strtoupper(constant('PHP_OS')) === 'LINUX') {
|
||||
/**
|
||||
* @psalm-suppress UnnecessaryVarAnnotation
|
||||
* @var string $phpOs
|
||||
*/
|
||||
$phpOs = constant('PHP_OS');
|
||||
|
||||
if (strtoupper($phpOs) === 'LINUX') {
|
||||
$addressPaths = glob('/sys/class/net/*/address', GLOB_NOSORT);
|
||||
|
||||
if ($addressPaths === false || count($addressPaths) === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
/** @var array<array-key, string> $macs */
|
||||
$macs = [];
|
||||
|
||||
array_walk($addressPaths, function (string $addressPath) use (&$macs): void {
|
||||
@@ -157,7 +173,10 @@ class SystemNodeProvider implements NodeProviderInterface
|
||||
}
|
||||
});
|
||||
|
||||
$macs = array_map('trim', $macs);
|
||||
/** @var callable $trim */
|
||||
$trim = 'trim';
|
||||
|
||||
$macs = array_map($trim, $macs);
|
||||
|
||||
// Remove invalid entries.
|
||||
$macs = array_filter($macs, function (string $address) {
|
||||
@@ -165,6 +184,7 @@ class SystemNodeProvider implements NodeProviderInterface
|
||||
&& preg_match(self::SYSFS_PATTERN, $address);
|
||||
});
|
||||
|
||||
/** @var string|bool $mac */
|
||||
$mac = reset($macs);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,21 +19,15 @@ use Ramsey\Uuid\Type\Integer as IntegerObject;
|
||||
use Ramsey\Uuid\Type\Time;
|
||||
|
||||
/**
|
||||
* FixedTimeProvider uses an known time to provide the time
|
||||
* FixedTimeProvider uses a known time to provide the time
|
||||
*
|
||||
* This provider allows the use of a previously-generated, or known, time
|
||||
* when generating time-based UUIDs.
|
||||
*/
|
||||
class FixedTimeProvider implements TimeProviderInterface
|
||||
{
|
||||
/**
|
||||
* @var Time
|
||||
*/
|
||||
private $fixedTime;
|
||||
|
||||
public function __construct(Time $time)
|
||||
public function __construct(private Time $time)
|
||||
{
|
||||
$this->fixedTime = $time;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,7 +37,7 @@ class FixedTimeProvider implements TimeProviderInterface
|
||||
*/
|
||||
public function setUsec($value): void
|
||||
{
|
||||
$this->fixedTime = new Time($this->fixedTime->getSeconds(), $value);
|
||||
$this->time = new Time($this->time->getSeconds(), $value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,11 +47,11 @@ class FixedTimeProvider implements TimeProviderInterface
|
||||
*/
|
||||
public function setSec($value): void
|
||||
{
|
||||
$this->fixedTime = new Time($value, $this->fixedTime->getMicroseconds());
|
||||
$this->time = new Time($value, $this->time->getMicroseconds());
|
||||
}
|
||||
|
||||
public function getTime(): Time
|
||||
{
|
||||
return $this->fixedTime;
|
||||
return $this->time;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user