Skip to content

Commit 716dba0

Browse files
committed
Implement getMappedDatabaseTypes()
1 parent 6c30b4c commit 716dba0

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

src/Types/GeometryType.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use function is_resource;
2121
use function sprintf;
2222
use function stream_get_contents;
23+
use function strtolower;
2324

2425
/**
2526
* Doctrine type for Geometry.
@@ -121,6 +122,20 @@ public function getBindingType(): ParameterType
121122
return ParameterType::LARGE_OBJECT;
122123
}
123124

125+
#[Override]
126+
public function getMappedDatabaseTypes(AbstractPlatform $platform): array
127+
{
128+
if ($platform instanceof AbstractMySQLPlatform) {
129+
return [strtolower($this->getGeometryName())];
130+
}
131+
132+
if ($platform instanceof PostgreSQLPlatform && static::class === self::class) {
133+
return ['geometry'];
134+
}
135+
136+
return [];
137+
}
138+
124139
/**
125140
* @psalm-return class-string<ProxyInterface&Geometry>
126141
*/

tests/FunctionalTestCase.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use Doctrine\Common\DataFixtures\Loader;
1111
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
1212
use Doctrine\DBAL\Connection;
13-
use Doctrine\DBAL\Platforms\AbstractPlatform;
1413
use Doctrine\ORM\EntityManager;
1514
use Doctrine\ORM\ORMSetup;
1615
use Doctrine\ORM\Tools\SchemaTool;
@@ -23,8 +22,6 @@
2322
*/
2423
abstract class FunctionalTestCase extends TestCase
2524
{
26-
private AbstractPlatform $platform;
27-
2825
private Loader $fixtureLoader;
2926

3027
private EntityManager $em;
@@ -38,15 +35,6 @@ protected function setUp(): void
3835
parent::setUp();
3936

4037
$this->connection = createDoctrineConnection(selectDatabase: true);
41-
$this->platform = $this->connection->getDatabasePlatform();
42-
43-
$this->platform->registerDoctrineTypeMapping('geometry', 'binary');
44-
$this->platform->registerDoctrineTypeMapping('linestring', 'binary');
45-
$this->platform->registerDoctrineTypeMapping('multilinestring', 'binary');
46-
$this->platform->registerDoctrineTypeMapping('multipoint', 'binary');
47-
$this->platform->registerDoctrineTypeMapping('multipolygon', 'binary');
48-
$this->platform->registerDoctrineTypeMapping('point', 'binary');
49-
$this->platform->registerDoctrineTypeMapping('polygon', 'binary');
5038

5139
$this->fixtureLoader = new Loader();
5240

0 commit comments

Comments
 (0)