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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽