| 1234567891011121314151617181920212223242526272829303132333435363738394041 | <?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];    }}
 |