From eef18b9e6a657e23c590fd07588974adfdd334f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Wed, 1 Mar 2023 13:05:49 -0300 Subject: [PATCH 1/7] Support for Laravel 9 --- composer.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 4451cb50..01275517 100644 --- a/composer.json +++ b/composer.json @@ -15,16 +15,15 @@ } ], "require": { - "php": ">=7.3", + "php": ">=8.1.10", "ext-pdo": "*", "ext-json": "*", - "illuminate/database": "^8.0", "geo-io/wkb-parser": "^1.0", "jmikola/geojson": "^1.0" }, "require-dev": { - "phpunit/phpunit": "~6.5", - "laravel/laravel": "^8.0", + "phpunit/phpunit": "^9.0", + "laravel/laravel": "^9.0", "doctrine/dbal": "^2.5", "laravel/browser-kit-testing": "^2.0", "mockery/mockery": "^1.3" From 3c0618bb5b3bd6e020446cbcbdf101f40305769f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Wed, 1 Mar 2023 13:09:55 -0300 Subject: [PATCH 2/7] Package renamed --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 01275517..301f499d 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "grimzy/laravel-mysql-spatial", + "name": "moova/laravel-mysql-spatial", "description": "MySQL spatial data types extension for Laravel.", "scripts": { "test": "phpunit -c phpunit.xml.dist", From 8e8f4d443f883f3cd00f7071d0d6724ce33b6cc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Mon, 20 Mar 2023 12:34:46 -0300 Subject: [PATCH 3/7] Supports Mysql 5.7 --- composer.json | 2 +- src/Eloquent/SpatialTrait.php | 63 ++++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/composer.json b/composer.json index 301f499d..41220fca 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "ext-pdo": "*", "ext-json": "*", "geo-io/wkb-parser": "^1.0", - "jmikola/geojson": "^1.0" + "jmikola/geojson": "^1.1" }, "require-dev": { "phpunit/phpunit": "^9.0", diff --git a/src/Eloquent/SpatialTrait.php b/src/Eloquent/SpatialTrait.php index 5cc3f4b1..c8c28fd0 100755 --- a/src/Eloquent/SpatialTrait.php +++ b/src/Eloquent/SpatialTrait.php @@ -130,11 +130,12 @@ public function isColumnAllowed($geometryColumn) return true; } - public function scopeDistance($query, $geometryColumn, $geometry, $distance) + public function scopeDistance($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); - $query->whereRaw("st_distance(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) <= ?", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->whereRaw("st_distance(`$geometryColumn`, $geometryObjectText) <= ?", [ $geometry->toWkt(), $geometry->getSrid(), $distance, @@ -143,13 +144,13 @@ public function scopeDistance($query, $geometryColumn, $geometry, $distance) return $query; } - public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $distance) + public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); $query = $this->scopeDistance($query, $geometryColumn, $geometry, $distance); - - $query->whereRaw("st_distance(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) != 0", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->whereRaw("st_distance(`$geometryColumn`, $geometryObjectText) != 0", [ $geometry->toWkt(), $geometry->getSrid(), ]); @@ -157,7 +158,7 @@ public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $ return $query; } - public function scopeDistanceValue($query, $geometryColumn, $geometry) + public function scopeDistanceValue($query, $geometryColumn, $geometry, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); @@ -166,18 +167,18 @@ public function scopeDistanceValue($query, $geometryColumn, $geometry) if (!$columns) { $query->select('*'); } - - $query->selectRaw("st_distance(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) as distance", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->selectRaw("st_distance(`$geometryColumn`, $geometryObjectText) as distance", [ $geometry->toWkt(), $geometry->getSrid(), ]); } - public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distance) + public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); - - $query->whereRaw("st_distance_sphere(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) <= ?", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->whereRaw("st_distance_sphere(`$geometryColumn`, $geometryObjectText) <= ?", [ $geometry->toWkt(), $geometry->getSrid(), $distance, @@ -186,13 +187,13 @@ public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distanc return $query; } - public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geometry, $distance) + public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); $query = $this->scopeDistanceSphere($query, $geometryColumn, $geometry, $distance); - - $query->whereRaw("st_distance_sphere($geometryColumn, ST_GeomFromText(?, ?, 'axis-order=long-lat')) != 0", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->whereRaw("st_distance_sphere($geometryColumn, $geometryObjectText) != 0", [ $geometry->toWkt(), $geometry->getSrid(), ]); @@ -200,7 +201,7 @@ public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geome return $query; } - public function scopeDistanceSphereValue($query, $geometryColumn, $geometry) + public function scopeDistanceSphereValue($query, $geometryColumn, $geometry, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); @@ -209,21 +210,22 @@ public function scopeDistanceSphereValue($query, $geometryColumn, $geometry) if (!$columns) { $query->select('*'); } - $query->selectRaw("st_distance_sphere(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) as distance", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->selectRaw("st_distance_sphere(`$geometryColumn`, $geometryObjectText) as distance", [ $geometry->toWkt(), $geometry->getSrid(), ]); } - public function scopeComparison($query, $geometryColumn, $geometry, $relationship) + public function scopeComparison($query, $geometryColumn, $geometry, $relationship, $geometryOptions = null) { $this->isColumnAllowed($geometryColumn); if (!in_array($relationship, $this->stRelations)) { throw new UnknownSpatialRelationFunction($relationship); } - - $query->whereRaw("st_{$relationship}(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat'))", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->whereRaw("st_{$relationship}(`$geometryColumn`, $geometryObjectText)", [ $geometry->toWkt(), $geometry->getSrid(), ]); @@ -271,15 +273,21 @@ public function scopeDoesTouch($query, $geometryColumn, $geometry) return $this->scopeComparison($query, $geometryColumn, $geometry, 'touches'); } - public function scopeOrderBySpatial($query, $geometryColumn, $geometry, $orderFunction, $direction = 'asc') - { + public function scopeOrderBySpatial( + $query, + $geometryColumn, + $geometry, + $orderFunction, + $direction = 'asc', + $geometryOptions = null + ) { $this->isColumnAllowed($geometryColumn); if (!in_array($orderFunction, $this->stOrderFunctions)) { throw new UnknownSpatialFunctionException($orderFunction); } - - $query->orderByRaw("st_{$orderFunction}(`$geometryColumn`, ST_GeomFromText(?, ?, 'axis-order=long-lat')) {$direction}", [ + $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $query->orderByRaw("st_{$orderFunction}(`$geometryColumn`, $geometryObjectText) {$direction}", [ $geometry->toWkt(), $geometry->getSrid(), ]); @@ -296,4 +304,13 @@ public function scopeOrderByDistanceSphere($query, $geometryColumn, $geometry, $ { return $this->scopeOrderBySpatial($query, $geometryColumn, $geometry, 'distance_sphere', $direction); } + + private function getGeometryObjectText($geometryOptions = null) + { + if ($geometryOptions) { + // Avoid default 'axis-order=long-lat', till support Mysql 8 + return "ST_GeomFromText(?, ?, '$geometryOptions')"; + } + return "ST_GeomFromText(?, ?)"; + } } From 26123b52094fded3bdcc59b70f6071d22b0ed0ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Mon, 20 Mar 2023 20:23:07 -0300 Subject: [PATCH 4/7] Mysql version config added --- src/Eloquent/SpatialExpression.php | 5 +++- src/Eloquent/SpatialTrait.php | 37 +++++++++++++++--------------- src/SpatialServiceProvider.php | 2 ++ 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/Eloquent/SpatialExpression.php b/src/Eloquent/SpatialExpression.php index 9224af0f..a2beefb5 100644 --- a/src/Eloquent/SpatialExpression.php +++ b/src/Eloquent/SpatialExpression.php @@ -8,7 +8,10 @@ class SpatialExpression extends Expression { public function getValue() { - return "ST_GeomFromText(?, ?, 'axis-order=long-lat')"; + if (config('moova_spatial.mysql_version_8')) { + return "ST_GeomFromText(?, ?, 'axis-order=long-lat')"; + } + return "ST_GeomFromText(?, ?)"; } public function getSpatialValue() diff --git a/src/Eloquent/SpatialTrait.php b/src/Eloquent/SpatialTrait.php index c8c28fd0..fb38e59c 100755 --- a/src/Eloquent/SpatialTrait.php +++ b/src/Eloquent/SpatialTrait.php @@ -130,11 +130,11 @@ public function isColumnAllowed($geometryColumn) return true; } - public function scopeDistance($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) + public function scopeDistance($query, $geometryColumn, $geometry, $distance) { $this->isColumnAllowed($geometryColumn); - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->whereRaw("st_distance(`$geometryColumn`, $geometryObjectText) <= ?", [ $geometry->toWkt(), $geometry->getSrid(), @@ -144,12 +144,12 @@ public function scopeDistance($query, $geometryColumn, $geometry, $distance, $ge return $query; } - public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) + public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $distance) { $this->isColumnAllowed($geometryColumn); $query = $this->scopeDistance($query, $geometryColumn, $geometry, $distance); - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->whereRaw("st_distance(`$geometryColumn`, $geometryObjectText) != 0", [ $geometry->toWkt(), $geometry->getSrid(), @@ -158,7 +158,7 @@ public function scopeDistanceExcludingSelf($query, $geometryColumn, $geometry, $ return $query; } - public function scopeDistanceValue($query, $geometryColumn, $geometry, $geometryOptions = null) + public function scopeDistanceValue($query, $geometryColumn, $geometry) { $this->isColumnAllowed($geometryColumn); @@ -167,17 +167,17 @@ public function scopeDistanceValue($query, $geometryColumn, $geometry, $geometry if (!$columns) { $query->select('*'); } - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->selectRaw("st_distance(`$geometryColumn`, $geometryObjectText) as distance", [ $geometry->toWkt(), $geometry->getSrid(), ]); } - public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) + public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distance) { $this->isColumnAllowed($geometryColumn); - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->whereRaw("st_distance_sphere(`$geometryColumn`, $geometryObjectText) <= ?", [ $geometry->toWkt(), $geometry->getSrid(), @@ -187,12 +187,12 @@ public function scopeDistanceSphere($query, $geometryColumn, $geometry, $distanc return $query; } - public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geometry, $distance, $geometryOptions = null) + public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geometry, $distance) { $this->isColumnAllowed($geometryColumn); $query = $this->scopeDistanceSphere($query, $geometryColumn, $geometry, $distance); - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->whereRaw("st_distance_sphere($geometryColumn, $geometryObjectText) != 0", [ $geometry->toWkt(), $geometry->getSrid(), @@ -201,7 +201,7 @@ public function scopeDistanceSphereExcludingSelf($query, $geometryColumn, $geome return $query; } - public function scopeDistanceSphereValue($query, $geometryColumn, $geometry, $geometryOptions = null) + public function scopeDistanceSphereValue($query, $geometryColumn, $geometry) { $this->isColumnAllowed($geometryColumn); @@ -210,21 +210,21 @@ public function scopeDistanceSphereValue($query, $geometryColumn, $geometry, $ge if (!$columns) { $query->select('*'); } - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->selectRaw("st_distance_sphere(`$geometryColumn`, $geometryObjectText) as distance", [ $geometry->toWkt(), $geometry->getSrid(), ]); } - public function scopeComparison($query, $geometryColumn, $geometry, $relationship, $geometryOptions = null) + public function scopeComparison($query, $geometryColumn, $geometry, $relationship) { $this->isColumnAllowed($geometryColumn); if (!in_array($relationship, $this->stRelations)) { throw new UnknownSpatialRelationFunction($relationship); } - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->whereRaw("st_{$relationship}(`$geometryColumn`, $geometryObjectText)", [ $geometry->toWkt(), $geometry->getSrid(), @@ -286,7 +286,7 @@ public function scopeOrderBySpatial( if (!in_array($orderFunction, $this->stOrderFunctions)) { throw new UnknownSpatialFunctionException($orderFunction); } - $geometryObjectText = $this->getGeometryObjectText($geometryOptions); + $geometryObjectText = $this->getGeometryObjectText(); $query->orderByRaw("st_{$orderFunction}(`$geometryColumn`, $geometryObjectText) {$direction}", [ $geometry->toWkt(), $geometry->getSrid(), @@ -305,11 +305,10 @@ public function scopeOrderByDistanceSphere($query, $geometryColumn, $geometry, $ return $this->scopeOrderBySpatial($query, $geometryColumn, $geometry, 'distance_sphere', $direction); } - private function getGeometryObjectText($geometryOptions = null) + private function getGeometryObjectText() { - if ($geometryOptions) { - // Avoid default 'axis-order=long-lat', till support Mysql 8 - return "ST_GeomFromText(?, ?, '$geometryOptions')"; + if (config('moova_spatial.mysql_version_8')) { + return "ST_GeomFromText(?, ?, 'axis-order=long-lat')"; } return "ST_GeomFromText(?, ?)"; } diff --git a/src/SpatialServiceProvider.php b/src/SpatialServiceProvider.php index 3b859f8e..5d2ee5b3 100644 --- a/src/SpatialServiceProvider.php +++ b/src/SpatialServiceProvider.php @@ -60,5 +60,7 @@ public function register() } } } + + $this->app['config']->set('moova_spatial.mysql_version_8', env('SPATIAL_MYSQL_NEW_VERSION', false)); } } From 10423c76701c2b33c9ef19c1d780b4f08730f22d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Mon, 26 Feb 2024 14:10:29 -0300 Subject: [PATCH 5/7] MOOV-4448. Laravel 10 support --- composer.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 41220fca..6c7f43e6 100644 --- a/composer.json +++ b/composer.json @@ -22,10 +22,10 @@ "jmikola/geojson": "^1.1" }, "require-dev": { - "phpunit/phpunit": "^9.0", - "laravel/laravel": "^9.0", - "doctrine/dbal": "^2.5", - "laravel/browser-kit-testing": "^2.0", + "phpunit/phpunit": "^10.0", + "laravel/laravel": "^10.0", + "doctrine/dbal": "^3.0", + "laravel/browser-kit-testing": "^7.2", "mockery/mockery": "^1.3" }, "autoload": { From 0e77f12ac7dbcf194b22d8dd7ca0aa5cffa406ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Mon, 26 Feb 2024 14:36:35 -0300 Subject: [PATCH 6/7] MOOV-4448. Laravel 10 support --- src/Eloquent/SpatialExpression.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Eloquent/SpatialExpression.php b/src/Eloquent/SpatialExpression.php index a2beefb5..249a5ab7 100644 --- a/src/Eloquent/SpatialExpression.php +++ b/src/Eloquent/SpatialExpression.php @@ -3,10 +3,11 @@ namespace Grimzy\LaravelMysqlSpatial\Eloquent; use Illuminate\Database\Query\Expression; +use Illuminate\Database\Grammar; class SpatialExpression extends Expression { - public function getValue() + public function getValue(Grammar $grammar) { if (config('moova_spatial.mysql_version_8')) { return "ST_GeomFromText(?, ?, 'axis-order=long-lat')"; From 4ae012a9e464f341188582cc3b0496843703592a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emiliano=20Su=C3=A1rez?= Date: Fri, 9 May 2025 15:24:22 -0300 Subject: [PATCH 7/7] Laravel 11 upgrade --- composer.json | 5 +++-- src/MysqlConnection.php | 27 +-------------------------- src/Schema/Blueprint.php | 4 ++-- src/SpatialServiceProvider.php | 33 +-------------------------------- 4 files changed, 7 insertions(+), 62 deletions(-) diff --git a/composer.json b/composer.json index 6c7f43e6..ba92744e 100644 --- a/composer.json +++ b/composer.json @@ -15,16 +15,17 @@ } ], "require": { - "php": ">=8.1.10", + "php": ">=8.2", "ext-pdo": "*", "ext-json": "*", + "illuminate/database": "^10.0|^11.0", "geo-io/wkb-parser": "^1.0", "jmikola/geojson": "^1.1" }, "require-dev": { "phpunit/phpunit": "^10.0", "laravel/laravel": "^10.0", - "doctrine/dbal": "^3.0", + "doctrine/dbal": "^4.0", "laravel/browser-kit-testing": "^7.2", "mockery/mockery": "^1.3" }, diff --git a/src/MysqlConnection.php b/src/MysqlConnection.php index 38a2b1a4..921c7060 100644 --- a/src/MysqlConnection.php +++ b/src/MysqlConnection.php @@ -2,37 +2,12 @@ namespace Grimzy\LaravelMysqlSpatial; -use Doctrine\DBAL\Types\Type as DoctrineType; use Grimzy\LaravelMysqlSpatial\Schema\Builder; use Grimzy\LaravelMysqlSpatial\Schema\Grammars\MySqlGrammar; use Illuminate\Database\MySqlConnection as IlluminateMySqlConnection; class MysqlConnection extends IlluminateMySqlConnection { - public function __construct($pdo, $database = '', $tablePrefix = '', array $config = []) - { - parent::__construct($pdo, $database, $tablePrefix, $config); - - if (class_exists(DoctrineType::class)) { - // Prevent geometry type fields from throwing a 'type not found' error when changing them - $geometries = [ - 'geometry', - 'point', - 'linestring', - 'polygon', - 'multipoint', - 'multilinestring', - 'multipolygon', - 'geometrycollection', - 'geomcollection', - ]; - $dbPlatform = $this->getDoctrineSchemaManager()->getDatabasePlatform(); - foreach ($geometries as $type) { - $dbPlatform->registerDoctrineTypeMapping($type, 'string'); - } - } - } - /** * Get the default schema grammar instance. * @@ -56,4 +31,4 @@ public function getSchemaBuilder() return new Builder($this); } -} +} \ No newline at end of file diff --git a/src/Schema/Blueprint.php b/src/Schema/Blueprint.php index 0a333f06..bc11aed7 100644 --- a/src/Schema/Blueprint.php +++ b/src/Schema/Blueprint.php @@ -14,9 +14,9 @@ class Blueprint extends IlluminateBlueprint * * @return \Illuminate\Support\Fluent */ - public function geometry($column, $srid = null) + public function geometry($column, $subtype = null, $srid = 0) { - return $this->addColumn('geometry', $column, compact('srid')); + return $this->addColumn('geometry', $column, compact('subtype', 'srid')); } /** diff --git a/src/SpatialServiceProvider.php b/src/SpatialServiceProvider.php index 5d2ee5b3..9cf14db5 100644 --- a/src/SpatialServiceProvider.php +++ b/src/SpatialServiceProvider.php @@ -2,16 +2,7 @@ namespace Grimzy\LaravelMysqlSpatial; -use Doctrine\DBAL\Types\Type as DoctrineType; use Grimzy\LaravelMysqlSpatial\Connectors\ConnectionFactory; -use Grimzy\LaravelMysqlSpatial\Doctrine\Geometry; -use Grimzy\LaravelMysqlSpatial\Doctrine\GeometryCollection; -use Grimzy\LaravelMysqlSpatial\Doctrine\LineString; -use Grimzy\LaravelMysqlSpatial\Doctrine\MultiLineString; -use Grimzy\LaravelMysqlSpatial\Doctrine\MultiPoint; -use Grimzy\LaravelMysqlSpatial\Doctrine\MultiPolygon; -use Grimzy\LaravelMysqlSpatial\Doctrine\Point; -use Grimzy\LaravelMysqlSpatial\Doctrine\Polygon; use Illuminate\Database\DatabaseManager; use Illuminate\Database\DatabaseServiceProvider; @@ -40,27 +31,5 @@ public function register() $this->app->singleton('db', function ($app) { return new DatabaseManager($app, $app['db.factory']); }); - - if (class_exists(DoctrineType::class)) { - // Prevent geometry type fields from throwing a 'type not found' error when changing them - $geometries = [ - 'geometry' => Geometry::class, - 'point' => Point::class, - 'linestring' => LineString::class, - 'polygon' => Polygon::class, - 'multipoint' => MultiPoint::class, - 'multilinestring' => MultiLineString::class, - 'multipolygon' => MultiPolygon::class, - 'geometrycollection' => GeometryCollection::class, - ]; - $typeNames = array_keys(DoctrineType::getTypesMap()); - foreach ($geometries as $type => $class) { - if (!in_array($type, $typeNames)) { - DoctrineType::addType($type, $class); - } - } - } - - $this->app['config']->set('moova_spatial.mysql_version_8', env('SPATIAL_MYSQL_NEW_VERSION', false)); } -} +} \ No newline at end of file