IdKoder, а в первом посте - это рабочий код? Просто там два класса-синглтона и ни в одном метод получения объекта правильно не написан.
Вот, например:
public static function getInstance ()
{
$class = __CLASS__ ;
self :: $instance =new $class ;
return self :: $instance ;
}Оно же каждый раз будет возвращать новый объект.
И зачем все эти пляски с получение имени класса из __CLASS__ если уже лет сто как можно писать так:
protected static $instance;
public static function getInstance()
{
return static::$instance ?: static::$instance = new static;
}