Использование конструктора черт - PullRequest
0 голосов
/ 16 января 2019

У меня есть класс, который я собираюсь сделать Синглтон.По этой причине я хочу использовать черту.Примерно так:

trait TSingleton
{
    private static $instance = null;

    private function __construct() {}
    private function __clone() {}
    private function __wakeup() {}

    /**
     * @return static
     */
    public static function getInstance()
    {
        if (is_null(static::$instance)) {
            static::$instance = new static();
        }

        return static::$instance;
    }
}

А потом:

class Db implements IDb
{
    use TSingleton;
    ...
}

Вопрос в том, будет ли конструктор базы данных закрытым, и если да, то зачем мне создавать его наследники?

...