. */ namespace Doctrine\DBAL\Event\Listeners; use Doctrine\DBAL\Event\ConnectionEventArgs; use Doctrine\DBAL\Events; use Doctrine\Common\EventSubscriber; /** * MySQL Session Init Event Subscriber which allows to set the Client Encoding of the Connection * * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.doctrine-project.com * @since 1.0 * @version $Revision$ * @author Benjamin Eberlei * @deprecated Use "charset" option to PDO MySQL Connection instead. */ class MysqlSessionInit implements EventSubscriber { /** * @var string */ private $_charset; /** * @var string */ private $_collation; /** * Configure Charset and Collation options of MySQL Client for each Connection * * @param string $charset * @param string $collation */ public function __construct($charset = 'utf8', $collation = false) { $this->_charset = $charset; $this->_collation = $collation; } /** * @param ConnectionEventArgs $args * @return void */ public function postConnect(ConnectionEventArgs $args) { $collation = ($this->_collation) ? " COLLATE ".$this->_collation : ""; $args->getConnection()->executeUpdate("SET NAMES ".$this->_charset . $collation); } public function getSubscribedEvents() { return array(Events::postConnect); } }