@web-quest3

Плохое ли подключение в конструторе бд?

public function __construct()
    {
        try {
            $this->db = new PDO('mysql:host='.$this->host.';dbname='.$this->dbname,$this->login,$this->password);
            $this->db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
            $this->db->exec("set names utf8");
        }

        catch (PDOException $e) {
            echo "Ошибка "  . $e->getMessage();
        }

        return $this->db;
    }

Чем плохо коннектить через конструктор и потом наследоватся остальным моделям используя $this->db ?
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 2
uDenX
@uDenX
PHP Developer
Лучше создать отдельный класс, который будет хранить в себе объекты (экземпляр подключения к БД и т.д.)
Singleton
Service Locator
Repository
Ответ написан
Комментировать
IvanCher
@IvanCher
Мысли шире
Тем плохо, что кол-во экземпляров этих классов будет равно кол-ву открытых соединений с БД. Плюсом экземпляры класса могут умереть неожиданно, а соединения будут висеть не закрытыми, что не очень хорошо.
Нужно стремиться к тому, чтобы было минимальное кол-во соединений с бд.
Denis Derepko дал правильное направление тебе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы