longitude-one/doctrine-spatial

Doctrine多平台支持空间类型和函数,兼容Doctrine 2.19、3.1及开发版(3.2和4.0)。

5.0.2 2024-06-29 08:29 UTC

README

Doctrine-spatial是Doctrine的一个扩展。它实现了空间类型和函数。例如,这个扩展可以帮助您判断您喜欢的超级英雄是否在哥谭市。

目前,支持MySQL和带有PostGIS的PostgreSQL。如果表达出兴趣,可能会增加对其他平台的支持。

当前状态

longitude-one/doctrine--spatial Stable release Minimum PHP Version Packagist License

Last integration test Maintainability Downloads Test Coverage Documentation Status

文档

文档解释了如何

  • 安装此Doctrine扩展
  • 配置此扩展
  • 创建空间实体
  • 在您的存储库中使用空间函数
  • 贡献(和测试)

文档包含所有可用类型和所有可用空间函数的词汇表。

项目起源

这个有用的库是由Derek J. Lambert创建的。Alexandre Tranchant从creof/doctrine-spatial分支出来,因为该项目自2017年以来似乎没有活动。

longitude-one/doctrine-spatial仓库采用良好的分支策略

  • main: 稳定的5.0版本发布,错误修复和次要新功能(无向后不兼容)。
  • 6.0.x-dev: 新的主要功能(可能存在向后不兼容)。
  • 5.1.x-dev: 受控弃用,以实现5.1到6.0的平稳过渡(无向后不兼容)。

这种做法确保了项目的清晰性、稳定性和可维护性。

兼容性

PHP和Doctrine ORM

此Doctrine扩展与PHP 8.1+和Doctrine ORM版本^2.9^3.1兼容,并旨在与即将推出的主要版本^4.x-dev保持兼容。安全修复将遵循PHP路线图

MySQL 5.7和8.0

支持MySQL 5.7,但已弃用。支持MySQL 8.0。

已知限制:longitude-one/doctrine-spatial无法在MySQL上存储SRID。内部,此扩展使用已知文本(Well Known Text)将内部类型转换为数据库类型。由于doctrine/orm不允许自定义持久化器或集合持久化器,我们无法提供两个参数(WKT和SRID)。扩展的已知文本(EWKT)用于将内部类型转换为数据库类型,但EWKT仅由PostGIS支持。我正在尝试一种新的解决方案:创建一个外部已知字节转换器,以便能够使用convertToDatabaseValue方法,这些方法由doctrine/ormlongitude-one/doctrine-spatial提供。

PostgreSQL

此空间库与PostgreSQL兼容。此库使用PostGIS的最新版本和PostgreSQL进行了测试。

需要帮助

Microsoft SQL Server 我正在寻找帮助创建一个提供Microsoft SQL Server服务的Docker,这样我就能实现与此数据库服务器的兼容性。

MariaDB 我正在寻找帮助创建一个提供MariaDB服务的GitHub动作,以启动测试并确定此库是否兼容。