52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * This file is part of sebastian/environment.
 | |
|  *
 | |
|  * (c) Sebastian Bergmann <sebastian@phpunit.de>
 | |
|  *
 | |
|  * For the full copyright and license information, please view the LICENSE
 | |
|  * file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| declare(strict_types=1);
 | |
| 
 | |
| namespace SebastianBergmann\Environment;
 | |
| 
 | |
| 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';
 | |
|         }
 | |
|     }
 | |
| }
 | 
