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#' - '#Used constant OS_TYPE_(LINUX|WINDOWS) not found#'
- '#Constant .* not found#' - '#Constant .* not found#'
- '#PHPDoc tag @throws with type Psr\\Container\\ContainerExceptionInterface is not subtype of Throwable#' - '#PHPDoc tag @throws with type Psr\\Container\\ContainerExceptionInterface is not subtype of Throwable#'
- '#Unsafe usage of new static#'
dynamicConstantNames: dynamicConstantNames:
- SWOOLE_VERSION - SWOOLE_VERSION

View File

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