mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-11-04 03:06:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * Pterodactyl - Panel
 | 
						|
 * Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
 | 
						|
 *
 | 
						|
 * This software is licensed under the terms of the MIT license.
 | 
						|
 * https://opensource.org/licenses/MIT
 | 
						|
 */
 | 
						|
if (! function_exists('human_readable')) {
 | 
						|
    /**
 | 
						|
     * Generate a human-readable filesize for a given file path.
 | 
						|
     *
 | 
						|
     * @param string $path
 | 
						|
     * @param int    $precision
 | 
						|
     * @return string
 | 
						|
     */
 | 
						|
    function human_readable($path, $precision = 2)
 | 
						|
    {
 | 
						|
        if (is_numeric($path)) {
 | 
						|
            $i = 0;
 | 
						|
            while (($path / 1024) > 0.9) {
 | 
						|
                $path = $path / 1024;
 | 
						|
                $i++;
 | 
						|
            }
 | 
						|
 | 
						|
            return round($path, $precision) . ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'][$i];
 | 
						|
        }
 | 
						|
 | 
						|
        return app('file')->humanReadableSize($path, $precision);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (! function_exists('is_digit')) {
 | 
						|
    /**
 | 
						|
     * Deal with normal (and irritating) PHP behavior to determine if
 | 
						|
     * a value is a non-float positive integer.
 | 
						|
     *
 | 
						|
     * @param mixed $value
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    function is_digit($value)
 | 
						|
    {
 | 
						|
        return is_bool($value) ? false : ctype_digit(strval($value));
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
if (! function_exists('object_get_strict')) {
 | 
						|
    /**
 | 
						|
     * Get an object using dot notation. An object key with a value of null is still considered valid
 | 
						|
     * and will not trigger the response of a default value (unlike object_get).
 | 
						|
     *
 | 
						|
     * @param object $object
 | 
						|
     * @param string $key
 | 
						|
     * @param null   $default
 | 
						|
     * @return mixed
 | 
						|
     */
 | 
						|
    function object_get_strict($object, $key, $default = null)
 | 
						|
    {
 | 
						|
        if (is_null($key) || trim($key) == '') {
 | 
						|
            return $object;
 | 
						|
        }
 | 
						|
 | 
						|
        foreach (explode('.', $key) as $segment) {
 | 
						|
            if (! is_object($object) || ! property_exists($object, $segment)) {
 | 
						|
                return value($default);
 | 
						|
            }
 | 
						|
 | 
						|
            $object = $object->{$segment};
 | 
						|
        }
 | 
						|
 | 
						|
        return $object;
 | 
						|
    }
 | 
						|
}
 |