Doctrine-spatial is a doctrine extension. It implements spatial types and functions. As exemple, this extension can help you to know if your favorite superheroes is inside Gotham city.
Currently, MySQL and PostgreSQL with PostGIS are supported. Could potentially add support for other platforms if an interest is expressed.
The documentation explain how to:
The documentation contains a glossary of all available types and all available spatial functions.
This useful library was created by Derek J. Lambert. Alexandre Tranchant forked it from creof/doctrine-spatial because project seems to be non-active since 2017.
The longitude-one/doctrine-spatial repository employs a well-structured branching strategy:
This approach ensures clarity, stability, and maintainability for the project.
This Doctrine extension is compatible with PHP 8.1+ and Doctrine ORM versions ^2.9
, ^3.1
, and aims for continued compatibility with the upcoming major version ^4.x-dev
.
Security fixes will follow the PHP Roadmap.
MySQL5.7 is supported, but is deprecated. MySQL8.0 is supported.
Known Limitation: longitude-one/doctrine-spatial
CANNOT store SRID on MySQL. Internally, this extension uses Well Known Text to convert internal types to database type. As doctrine/orm
does not allow custom persister nor collection persister, we cannot provide two parameters (WKT and SRID). Extented Well Known Text (EWKT) is used to convert internal types to databases but EWKT is only supported by Postgis. I'm trying a new solution: create an external Well Known Bytes converter to be able to use it convertToDatabaseValue
methods of doctrine/orm
and longitude-one/doctrine-spatial
.
This spatial library is compatible with PostgreSql. This library is tested with the last versions of Postgis and PostgreSql.
Microsoft SQL Server I'm searching help to create a docker delivering a Microsoft SQL Server service. So I'll be able to implement compatibility with this database server.
MariaDB I'm searching help to create a Github action delivering a MariaDB service, to launch test and determine if this library is compatible.