hmm hab ich noch nicht ausprobiert, werd ich morge mal tun.
Möglich wäre evtl. auch anstatt:
$em->getConnection()->setCharset('UTF8');
das man dies definiert:
$em->getEventManager()->addEventSubscriber(new MysqlSessionInit('utf8', 'utf8_unicode_ci'));
Ich probiere das mal aus.
Was auf jedenfall nicht ausreicht ist wenn man nur die $connectionOptions ergänzt:
$connectionOptions = array(
'driver' => $db_config['database']['driver'],
'user' => $db_config['database']['username'],
'password' => $db_config['database']['password'],
'dbname' => $db_config['database']['name'],
'host' => $db_config['database']['host'],
'charset' => 'UTF8',
'driverOptions' => array(
'charset' => 'UTF8'
)
);
Ich glaube aber das man das auch benötigt beim schreiben in die DB.
Wobei man hier evtl. das gewünschte outputcharset aus der $config nehmen sollte.
gruss
paul
-----------------
EDIT:
ja es Funktioniert ebenfalls wenn man:
...
use \Doctrine\DBAL\Event\Listeners\MysqlSessionInit;
# Security Handler
if (defined('IN_CS') === false)
...
und dann in der function init
...
$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
$em->getEventManager()->addEventSubscriber(new MysqlSessionInit('utf8', 'utf8_unicode_ci'));
return $em;
abändert.
Was jetzt die bessere Lösung ist muss man sehen, wenn die Module nach und nach
auf d2 abgeändert werden.
$evm = new EventManager();
$evm->addEventSubscriber(new MysqlSessionInit('UTF8'));
Warum noch ein Object auf EventManager machen, wenn der bereits im EntityManager vorhanden ist?
Ein use auf MysqlSessionInit wird wohl auf jedenfall benötigt, da dies weder im EntityManager noch im EventManager vorhanden ist.
Man muss sich hier vortasten, mit d2 bin ich noch nicht sehr weit vorgedrungen um das richtig zu
verstehen. Ich denke auch das hier noch einige Änderungen in d2 kommen werden.