2012-03-07 52 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的每個查詢,發出兩個相同的查詢並沒有多大意義。

回答

0

將此事件監聽器從lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineConnectionListener.class.php複製到lib/database/sfDoctrineConnectionListener.class.php並刪除第31行$this->connection->setCharset($this->encoding);並清除緩存。 它不那麼優雅,但你不能只是簡單地註冊聽衆。

+0

不錯,我會給它一個鏡頭。 – 2012-03-10 02:42:45

+0

不好意思弄亂源代碼。我想知道是否有辦法通過projectConfiguration禁用它... – 2012-03-13 17:19:14

+0

我會在接下來的幾天內檢查它,如果我能找到一種方法來做到這一點,而不觸及源代碼,我會告訴你。 – 2012-03-13 23:20:14

相關問題