2012-03-07 51 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

相关问题