first commit
This commit is contained in:
55
pma/vendor/dasprid/enum/src/NullValue.php
vendored
Normal file
55
pma/vendor/dasprid/enum/src/NullValue.php
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
declare(strict_types = 1);
|
||||
|
||||
namespace DASPRiD\Enum;
|
||||
|
||||
use DASPRiD\Enum\Exception\CloneNotSupportedException;
|
||||
use DASPRiD\Enum\Exception\SerializeNotSupportedException;
|
||||
use DASPRiD\Enum\Exception\UnserializeNotSupportedException;
|
||||
|
||||
final class NullValue
|
||||
{
|
||||
/**
|
||||
* @var self
|
||||
*/
|
||||
private static $instance;
|
||||
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
public static function instance() : self
|
||||
{
|
||||
return self::$instance ?: self::$instance = new self();
|
||||
}
|
||||
|
||||
/**
|
||||
* Forbid cloning enums.
|
||||
*
|
||||
* @throws CloneNotSupportedException
|
||||
*/
|
||||
final public function __clone()
|
||||
{
|
||||
throw new CloneNotSupportedException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Forbid serializing enums.
|
||||
*
|
||||
* @throws SerializeNotSupportedException
|
||||
*/
|
||||
final public function __sleep() : array
|
||||
{
|
||||
throw new SerializeNotSupportedException();
|
||||
}
|
||||
|
||||
/**
|
||||
* Forbid unserializing enums.
|
||||
*
|
||||
* @throws UnserializeNotSupportedException
|
||||
*/
|
||||
final public function __wakeup() : void
|
||||
{
|
||||
throw new UnserializeNotSupportedException();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user