Я пытаюсь уничтожить единственный экземпляр моего синглтона но не могу заставить его работать.
Я знаю, что не должен вызывать деструктор явно и Я должен установить в null любую переменную, содержащую экземпляр, чтобы деструктор вызывался автоматически.
Дело в том, что я точно не контролирую несколько переменных, которые хранят этот экземпляр … Так что я не могу установить их все в null 🙁
Теперь я должен вызвать деструктор из класса, как public kill()
вызов метода $this->__destruct();
?
Я нашел обходной путь, но меня не устраивают грязные способы.
Знаете ли вы, что является лучшей практикой, чтобы сделать это?
Вот упрощенный код, который я использую:
<?php
Class MySingleton
{
private static $instance= null;
/**
* Class constructor.
*/
private function __construct()
{
...
}
/**
* Get the only instance of this class.
*
* @return the only instance of this class.
*/
public static function getInstance()
{
if (!isset(self::$instance)) self::$instance = new self();
return self::$instance;
}
/**
* Class destructor.
*/
public function __destruct()
{
debug('destructing instance of '.__CLASS__.'.');
debug($this);
}
}
?>
и получить / создать экземпляр, который я делаю: $myObject = MySingleton::getInstance();
Спасибо за ваш ценный совет! 😉
Задача ещё не решена.
Других решений пока нет …