. */ namespace App\Services\Misc; class ConsoleInfoHelper { /** * Returns true if the current script is executed in a CLI environment. * @return bool true if the current script is executed in a CLI environment, false otherwise */ public function isCLI(): bool { return \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true); } /** * Returns the username of the user who started the current script if possible. * @return string|null the username of the user who started the current script if possible, null otherwise */ public function getCLIUser(): ?string { if (!$this->isCLI()) { return null; } //Try to use the posix extension if available (Linux) if (function_exists('posix_getpwuid') && function_exists('posix_geteuid')) { $user = posix_getpwuid(posix_geteuid()); return $user['name']; } //Try to retrieve the name via the environment variable Username (Windows) if (isset($_SERVER['USERNAME'])) { return $_SERVER['USERNAME']; } //Try to retrieve the name via the environment variable USER (Linux) if (isset($_SERVER['USER'])) { return $_SERVER['USER']; } //Otherwise we can't determine the username return null; } }