X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FSubscriber%2FTablePrefixSubscriber.php;h=0379ad6a92c12523e253c7148f8af8b664ce891e;hb=156bf62758080153668a65db611c4241d0fc8a00;hp=8ec85e64358ac3eb819006f49b8ac15bbb87d669;hpb=bd0f3d32c9ccb8f7a1409edb960b909a5e6a096d;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Subscriber/TablePrefixSubscriber.php b/src/Wallabag/CoreBundle/Subscriber/TablePrefixSubscriber.php index 8ec85e64..0379ad6a 100644 --- a/src/Wallabag/CoreBundle/Subscriber/TablePrefixSubscriber.php +++ b/src/Wallabag/CoreBundle/Subscriber/TablePrefixSubscriber.php @@ -2,12 +2,15 @@ namespace Wallabag\CoreBundle\Subscriber; -use Doctrine\ORM\Event\LoadClassMetadataEventArgs; use Doctrine\Common\EventSubscriber; +use Doctrine\ORM\Event\LoadClassMetadataEventArgs; use Doctrine\ORM\Mapping\ClassMetadataInfo; /** * Puts a prefix to each table. + * This way were used instead of using the built-in strategy from Doctrine, using `naming_strategy` + * Because it conflicts with the DefaultQuoteStrategy (that espace table name, like user for Postgres) + * see #1498 for more detail. * * Solution from : * - http://stackoverflow.com/a/23860613/569101 @@ -24,23 +27,24 @@ class TablePrefixSubscriber implements EventSubscriber public function getSubscribedEvents() { - return array('loadClassMetadata'); + return ['loadClassMetadata']; } public function loadClassMetadata(LoadClassMetadataEventArgs $args) { $classMetadata = $args->getClassMetadata(); + // if we are in an inheritance hierarchy, only apply this once if ($classMetadata->isInheritanceTypeSingleTable() && !$classMetadata->isRootEntity()) { return; } - $classMetadata->setTableName($this->prefix . $classMetadata->getTableName()); + $classMetadata->setTableName($this->prefix.$classMetadata->getTableName()); foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) { if ($mapping['type'] === ClassMetadataInfo::MANY_TO_MANY && isset($classMetadata->associationMappings[$fieldName]['joinTable']['name'])) { $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name']; - $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName; + $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix.$mappedTableName; } } }