longitude-one / doctrine-spatial
Doctrine多平台支持空间类型和函数,兼容Doctrine 2.19、3.1及开发版(3.2和4.0)。
Requires
- php: ^8.1
- ext-json: *
- ext-mbstring: *
- doctrine/orm: ^2.19|^3.1
- longitude-one/geo-parser: ^3.0.1
- longitude-one/wkb-parser: ^3.0.0
- longitude-one/wkt-parser: ^3.0.0
Requires (Dev)
- cache/array-adapter: ^1.1
- dg/bypass-finals: ^1.3
- monolog/monolog: ^2.0
- phpunit/phpcov: ^9
- phpunit/phpunit: ^10.0
Replaces
This package is auto-updated.
Last update: 2024-09-13 09:18:41 UTC
README
Doctrine-spatial是Doctrine的一个扩展。它实现了空间类型和函数。例如,这个扩展可以帮助您判断您喜欢的超级英雄是否在哥谭市。
目前,支持MySQL和带有PostGIS的PostgreSQL。如果表达出兴趣,可能会增加对其他平台的支持。
当前状态
文档
该文档解释了如何
- 安装此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/orm
和longitude-one/doctrine-spatial
提供。
PostgreSQL
此空间库与PostgreSQL兼容。此库使用PostGIS的最新版本和PostgreSQL进行了测试。
需要帮助
Microsoft SQL Server 我正在寻找帮助创建一个提供Microsoft SQL Server服务的Docker,这样我就能实现与此数据库服务器的兼容性。
MariaDB 我正在寻找帮助创建一个提供MariaDB服务的GitHub动作,以启动测试并确定此库是否兼容。