@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;
    }
}
  • Вопрос задан
  • 305 просмотров
Решения вопроса 2
miraage
@miraage
Старый прогер
Factory.
Ответ написан
Комментировать
Akdmeh
@Akdmeh
PHP, Yii2, Music
Используйте существующие решения. Посмотрите для себя, например, Доктрину, либо компонент Symphony.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@jaxel
Зачем говнокодить ещё один велосипед? Вы правда верите, что сможете сделать лучше уже существующих решений? Возьмите доктрину например.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы