]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Subscriber/TablePrefixSubscriber.php
CS
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Subscriber / TablePrefixSubscriber.php
index 8ec85e64358ac3eb819006f49b8ac15bbb87d669..0379ad6a92c12523e253c7148f8af8b664ce891e 100644 (file)
@@ -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;
             }
         }
     }