Задать вопрос
@dev400

Какой паттерн реализовать для работы с базой?

Планирую уходить от конструкций вида
<?php
namespace Common;

final class Connection
{

    protected $link;

    private static $instance = NULL;

    private function __construct() {}

    protected function __clone() {}

    public static function getInstance() {

        if(is_null(self::$instance))
        {

            self::$instance = new self();

        }

        return self::$instance;
    }

    public function init() {

        if ( is_null($this->link) ) {
            try {
                $attr  = array(
                    \PDO::ATTR_ERRMODE  =>  \PDO::ERRMODE_EXCEPTION,
                    \PDO::ATTR_DEFAULT_FETCH_MODE   =>  \PDO::FETCH_ASSOC,
                    \PDO::ATTR_EMULATE_PREPARES =>  TRUE,
                );
                $this->link = new \PDO("mysql:host=localhost;dbname=admin;charset=utf8", "admin", "admin", $attr);

            } catch (\PDOException $e) {
                echo "Ошибка БД";
                file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
            }
        }

    }

    /**
     *  @return \PDO;
     */
    public function link() {
        return $this->link;
    }
}
  • Вопрос задан
  • 308 просмотров
Подписаться 1 Оценить 1 комментарий
Решения вопроса 2
miraage
@miraage
Старый прогер
Factory.
Ответ написан
Комментировать
Akdmeh
@Akdmeh
PHP, Yii2, Music
Используйте существующие решения. Посмотрите для себя, например, Доктрину, либо компонент Symphony.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@jaxel
Зачем говнокодить ещё один велосипед? Вы правда верите, что сможете сделать лучше уже существующих решений? Возьмите доктрину например.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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