PHP / Singleton

Понадобилоcь использовать синглтон в работе. [Синглтон]

Ниже пример кода, необходимого и достаточного для реализации паттерна singleton на PHP.


class AuthEnsure
{
    protected static $_instance;   # переменная для хранения экземпляра класса
    private function __construct() # private для предотвращения вызова new
    {
        # здесь можно вставить код конструктора, как обычно
    }
 
    private function __clone()  # private __clone для обеспечения
    {                           # невозможности клонирования объекта.
                               # Можно оставить пустым. 
    }
 
    public static function getInstance()  # функция для создания экземпляра класса
    {                                     # или получения уже существующего экземпляра
      if (null === self::$_instance)
       {
         self::$_instance = new self();
       }
 
       return self::$_instance;
     }
 
    # Далее все нужные методы класса
    function user_function([args])
    {
 
    }
}
 
# Пример: установка экземпляра класса для последующего использования
$AuthEnsure = AuthEnsure::getInstance();

2 comments:

  1. Еще несколько интересных и подробных примеров использования паттерна Singleton в PHP:
    http://hashcode.ru/questions/92217/php-паттерн-singleton

    ReplyDelete
  2. Есть ли какое-то решение (шаблон) для передачи объектов в php-модуль средствами ajax? Или, перефразируя вопрос - как добиться передачи объектов в Registry-singleton при асинхронных запросах...

    ReplyDelete