Страница 1 из 1

TIPS: Запуск сайта на Concrete5 v.8.x на Мастерхост

СообщениеДобавлено: 15 июн 2017, 22:18
cmsservice
Столкнулись тут с необходимостью установить сайт на хостинг Мастерхост, тарифный план "Просторный". Проблемы нет, залили базу, залили сайт и о-па...
На сайте крокозяблики. Заходим в phpMyAdmin - там все ок. Быстрый анализ привел в тому, что нужно выполнить SET NAMES UTF8 сразу после создания соединения. Однако, мы помним, что у нас Doctrine ORM и где там это выполнить? Вот об этом я сейчас расскажу.

Если углубиться в структуру ORM, то мы увидим, что на нижнем уровне есть уровень драйверов для соединения с конкретной БД. Задача сразу становится проще.

В файле /concrete/src/Database/Driver/PDOMySqlConcrete5/Driver.php

Метод connect должен быть реализован следующим образом:
Код: Выделить всё
    public function connect(array $params, $username = null, $password = null, array $driverOptions = array())
    {
        $conn = new PDOConnection(
            $this->_constructPdoDsn($params),
            $username,
            $password,
            $driverOptions
        );

        if (isset($params['charset'])) {
          $conn->query('SET NAMES \''.$params['charset'].'\'');
        }

        return $conn;
    }


Странно, но на мастерхосте передача кодировки в DSN строке почему-то не работает.

Re: TIPS: Запуск сайта на Concrete5 v.8.x на Мастерхост

СообщениеДобавлено: 17 июн 2017, 14:23
Count_Raven
С Мастерхостом часто подобные проблемы ранее случались. Поэтому я как-то перестал пользоваться услугами Мастерхост лет 5-7 назад.

Re: TIPS: Запуск сайта на Concrete5 v.8.x на Мастерхост

СообщениеДобавлено: 19 июн 2017, 10:51
cmsservice
Ну мы тоже его не жалуем, хотя и числимся партнерами. Однако есть клиенты, которые прикипели к нему, намертво :)