Thanks. Will make a pdo_mysql driver and report here again.
As for the prefix in Doctrine: I use an eventlistener, like in the cookbook-example in the Doctrine documentation:
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/sql-table-prefixes.htmlI only changed it to replace #__ like we are used to do in Joomla This is my TablePrefix listener:
namespace Jooctrine;
use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;
class TablePrefix
{
protected $prefix = '';
public function __construct($prefix)
{
$this->prefix = (string) $prefix;
}
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
$classMetadata = $eventArgs->getClassMetadata();
$classMetadata->setTableName(str_replace('#__', $this->prefix, $classMetadata->getTableName()));
foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadataInfo::MANY_TO_MANY) {
$mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
$classMetadata->associationMappings[$fieldName]['joinTable']['name'] = str_replace('#__', $this->prefix, $mappedTableName);
}
}
}
}
When creating my EntityManager I have:
// Event-listener to change the #__ db-prefix into the current db-prefix
$prefix = \JFactory::getConfig()->get('dbprefix');
$evm = new EventManager;
$tablePrefix = new TablePrefix($prefix);
$evm->addEventListener(Events::loadClassMetadata, $tablePrefix);
I'll upload some code I use on
https://github.com/jooctrine and write some on
http://jooctrine.org/Planned that long ago allready, but couln't find the time for it, sorry.