summaryrefslogtreecommitdiff
path: root/vendor/sebastian/environment/src/OperatingSystem.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/sebastian/environment/src/OperatingSystem.php')
-rw-r--r--vendor/sebastian/environment/src/OperatingSystem.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/sebastian/environment/src/OperatingSystem.php b/vendor/sebastian/environment/src/OperatingSystem.php
new file mode 100644
index 000000000..1f3ebca7c
--- /dev/null
+++ b/vendor/sebastian/environment/src/OperatingSystem.php
@@ -0,0 +1,53 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of sebastian/environment.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace SebastianBergmann\Environment;
+
+use const DIRECTORY_SEPARATOR;
+use const PHP_OS;
+use const PHP_OS_FAMILY;
+use function defined;
+
+final class OperatingSystem
+{
+ /**
+ * Returns PHP_OS_FAMILY (if defined (which it is on PHP >= 7.2)).
+ * Returns a string (compatible with PHP_OS_FAMILY) derived from PHP_OS otherwise.
+ */
+ public function getFamily(): string
+ {
+ if (defined('PHP_OS_FAMILY')) {
+ return PHP_OS_FAMILY;
+ }
+
+ if (DIRECTORY_SEPARATOR === '\\') {
+ return 'Windows';
+ }
+
+ switch (PHP_OS) {
+ case 'Darwin':
+ return 'Darwin';
+
+ case 'DragonFly':
+ case 'FreeBSD':
+ case 'NetBSD':
+ case 'OpenBSD':
+ return 'BSD';
+
+ case 'Linux':
+ return 'Linux';
+
+ case 'SunOS':
+ return 'Solaris';
+
+ default:
+ return 'Unknown';
+ }
+ }
+}