Пример базового класса для паттерна одиночка на php
Пример паттерна одиночка (singleton) на php
08.03.2019
<?php
namespace Bp\Template\Oddler;
/**
* Класс Паттерн одиночка
*/
class Singleton
{
/**
*
* @var object Instance
*
*/
protected static $instances = [];
/**
* Возвращает единственный экземпляр объекта
*
* @return object
*/
public static function getInstance()
{
$class = get_called_class();
if (!isset(self::$instances[$class])) {
self::$instances[$class] = new static();
}
return self::$instances[$class];
}
// Предотвращаем создание
//----------------------\/\/\/\/\/----------------------------
private function __construct()
{
}
//private function __clone()
public function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
//private function __wakeup()
public function __wakeup()
{
trigger_error('Unserializing is not allowed.', E_USER_ERROR);
}
//----------------------/\/\/\/\/\----------------------------
}