Symfony - отключить автоматическую настройку кодировки - SET NAMES utf8 - PullRequest
0 голосов
/ 08 марта 2012

Я добавил следующую строку в мой /etc/my.cnf файл:

init-connect = 'SET NAMES utf8'

Перезапустил сервер и команда работает как положено. Однако Symfony (1.4) также выдает точно такую ​​же команду для КАЖДОГО запроса через:

// lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection/Mysql.php
// line 125
public function setCharset($charset) {
    $query = 'SET NAMES ' . $this->quote($charset);
    $this->exec($query);
    parent::setCharset($charset);
}

Мне любопытно, есть ли элегантный способ отключить эту автоматическую настройку charset? Выдача двух запросов, которые делают то же самое, для каждого запроса от Symfony, не имеет большого смысла.

1 Ответ

0 голосов
/ 10 марта 2012

Скопируйте этот прослушиватель событий из lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineConnectionListener.class.php в lib/database/sfDoctrineConnectionListener.class.php, удалите строку # 31 $this->connection->setCharset($this->encoding); и очистите кэш.Это не так элегантно, но вы не можете просто отменить регистрацию слушателя.

...