2012-03-07 9 views
0

私は/etc/my.cnfファイルに次の行を追加しました:予想通りsymfonyの - 文字セットの無効化自動設定 - SET NAMES utf8での

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); 
} 

、文字セットのこの自動設定を無効にするエレガントな方法はありますか? Symfonyからのすべてのクエリに対して、同じことをする2つのクエリを発行することはあまり意味がありません。

答えて

0

このイベントリスナーをlib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineConnectionListener.class.phpからlib/database/sfDoctrineConnectionListener.class.phpにコピーし、#31 $this->connection->setCharset($this->encoding);を削除してキャッシュをクリアします。 それほどエレガントではありませんが、単にリスナーの登録を解除するだけではありません。

+0

ニース、私はそれを打つつもりです。 –

+0

ソースコードを使いこなすのは良い考えではありません。 projectConfigurationで無効にする方法があるのだろう... –

+0

私はソースコードに触れることなくそれを行う方法を見つけることができるかどうかを数日後に確認します。 –

関連する問題