You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
<?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]; |
|
} |
|
}
|
|
|