vk/system/Traits/Singleton.php

60 lines
860 B
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace VK\Traits;
/**
* Паттерн singleton
*/
trait Singleton
{
/**
* Экземпляр класса
*
* @var object
*/
protected static object $instance;
/**
* Заблокирован
*/
protected function __construct()
{
}
/**
* Инициализация
*
* @return self
*/
public static function init(): self
{
if (!isset(self::$instance)) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Заблокирован
*/
private function __clone()
{
}
/**
* Заблокирован
*/
private function __sleep()
{
}
/**
* Заблокирован
*/
private function __wakeup()
{
}
}