Skip to content

longitude-one/doctrine-spatial

Repository files navigation

doctrine-Spatial

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.

Current status

Last integration test Maintainability Downloads Documentation Status Test Coverage

Documentation

The new documentation explain how to:

  • install this doctrine extension,
  • configure this extension,
  • create spatial entities,
  • use spatial functions in your repositories,
  • contribute (and test)

The documentation contains a glossary of all available types and all available spatial functions.

Project origins

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 dev branch can be used, but be careful backward compatibility aren't warrantied. The main branch will be dedicated to fix issue. The release 3.0 has been published during summer 2021. The release 4.0 will be published during spring 2023 and compatibility with PHP7.4 and 8.0 will be abandoned because of PHP roadmap

Compatibility

PHP

This doctrine extension is compatible with PHP 8.1+ Security fixes will follow the PHP Roadmap.

MySQL 5.7 and 8.0

A lot of functions change their names between these two versions. The MySQL 5.7 deprecated functions are not implemented.

MariaDB 10

This version is NOT compatible with MariaDB version. Some spatial functions seems to work, but their results are different from MySQL version (StContains function is a good example).

PostgreSQL

This spatial library is compatible with PostgreSql13. This library is tested with Postgis 3.1.

Migrating from creof/doctrine2-spatial

Update your composer.json to replace creof/doctrine2-spatial by longitude-one/doctrine-spatial.

Update the namespace, each use CrEOF\Spatial\... by use LongitudeOne\Spatial\...

Help wanted

RFC I don't have enough money to buy the last edition of the ISO/IEC 13249-3:2016. I only bought the previous version. This document is essential to know which functions are in Standard and which one are specific to a database engine. If anyone has bought one and don't use it anymore, feel free to forward it. You can contact me by mail, specified in composer.json.

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.