mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-10-31 02:28:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @link http://www.yiiframework.com/
 | |
|  * @copyright Copyright (c) 2008 Yii Software LLC
 | |
|  * @license http://www.yiiframework.com/license/
 | |
|  */
 | |
| 
 | |
| namespace yii\base;
 | |
| 
 | |
| use Yii;
 | |
| 
 | |
| /**
 | |
|  * StaticInstanceTrait provides methods to satisfy [[StaticInstanceInterface]] interface.
 | |
|  *
 | |
|  * @see StaticInstanceInterface
 | |
|  *
 | |
|  * @author Paul Klimov <klimov.paul@gmail.com>
 | |
|  * @since 2.0.13
 | |
|  */
 | |
| trait StaticInstanceTrait
 | |
| {
 | |
|     /**
 | |
|      * @var static[] static instances in format: `[className => object]`
 | |
|      */
 | |
|     private static $_instances = [];
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * Returns static class instance, which can be used to obtain meta information.
 | |
|      * @param bool $refresh whether to re-create static instance even, if it is already cached.
 | |
|      * @return static class instance.
 | |
|      */
 | |
|     public static function instance($refresh = false)
 | |
|     {
 | |
|         $className = get_called_class();
 | |
|         if ($refresh || !isset(self::$_instances[$className])) {
 | |
|             self::$_instances[$className] = Yii::createObject($className);
 | |
|         }
 | |
|         return self::$_instances[$className];
 | |
|     }
 | |
| }
 | 
