71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Illuminate\Container;
 | |
| 
 | |
| use Closure;
 | |
| use ReflectionNamedType;
 | |
| 
 | |
| class Util
 | |
| {
 | |
|     /**
 | |
|      * If the given value is not an array and not null, wrap it in one.
 | |
|      *
 | |
|      * From Arr::wrap() in Illuminate\Support.
 | |
|      *
 | |
|      * @param  mixed  $value
 | |
|      * @return array
 | |
|      */
 | |
|     public static function arrayWrap($value)
 | |
|     {
 | |
|         if (is_null($value)) {
 | |
|             return [];
 | |
|         }
 | |
| 
 | |
|         return is_array($value) ? $value : [$value];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the default value of the given value.
 | |
|      *
 | |
|      * From global value() helper in Illuminate\Support.
 | |
|      *
 | |
|      * @param  mixed  $value
 | |
|      * @return mixed
 | |
|      */
 | |
|     public static function unwrapIfClosure($value)
 | |
|     {
 | |
|         return $value instanceof Closure ? $value() : $value;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the class name of the given parameter's type, if possible.
 | |
|      *
 | |
|      * From Reflector::getParameterClassName() in Illuminate\Support.
 | |
|      *
 | |
|      * @param  \ReflectionParameter  $parameter
 | |
|      * @return string|null
 | |
|      */
 | |
|     public static function getParameterClassName($parameter)
 | |
|     {
 | |
|         $type = $parameter->getType();
 | |
| 
 | |
|         if (! $type instanceof ReflectionNamedType || $type->isBuiltin()) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         $name = $type->getName();
 | |
| 
 | |
|         if (! is_null($class = $parameter->getDeclaringClass())) {
 | |
|             if ($name === 'self') {
 | |
|                 return $class->getName();
 | |
|             }
 | |
| 
 | |
|             if ($name === 'parent' && $parent = $class->getParentClass()) {
 | |
|                 return $parent->getName();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return $name;
 | |
|     }
 | |
| }
 |