improve SingletonTrait compatibility

This commit is contained in:
sunxyw
2022-04-05 00:13:22 +08:00
committed by sunxyw
parent 33d3341bb3
commit 441c866160
2 changed files with 14 additions and 9 deletions

View File

@@ -7,5 +7,6 @@ parameters:
- '#Used constant OS_TYPE_(LINUX|WINDOWS) not found#'
- '#Constant .* not found#'
- '#PHPDoc tag @throws with type Psr\\Container\\ContainerExceptionInterface is not subtype of Throwable#'
- '#Unsafe usage of new static#'
dynamicConstantNames:
- SWOOLE_VERSION

View File

@@ -1,30 +1,34 @@
<?php
/** @noinspection PhpUnused */
declare(strict_types=1);
namespace ZM\Utils;
trait SingletonTrait
{
/**
* @deprecated 将会于未来版本移除
*
* @var array
*/
protected static $cached = [];
/**
* @var self
* @var null|static
*/
private static $instance;
protected static $instance;
/**
* @return self
* @noinspection PhpMissingReturnTypeInspection
* 获取类实例
*
* @return static
*/
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
if (is_null(static::$instance)) {
static::$instance = new static();
}
return self::$instance;
return static::$instance;
}
}