earthit / storage
PHP 存储库
2.0.1
2024-01-05 18:08 UTC
Requires
- php: >=8.1
- earthit/dbc: ^2.0.0
- earthit/php-common: ^2.0.1
Requires (Dev)
- doctrine/dbal: ^3.7.2
- earthit/php-project-utils: ^0.0.12
- earthit/schema: ^2.0.1
- phpunit/phpunit: ~10.5.5
- togos/tpfetcher: ^0.0.7
- dev-master
- 2.0.1
- 2.0.0
- 0.4.10
- 0.4.9
- 0.4.8
- 0.4.7
- 0.4.6
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.31
- 0.3.30-alpha2
- 0.3.30-alpha1
- 0.3.22
- 0.3.21
- 0.3.20
- 0.3.19
- 0.3.18
- 0.3.17
- 0.3.16
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.2
- 0.1.1
- 0.1.0
This package is auto-updated.
Last update: 2024-09-05 19:40:14 UTC
README
PHP 存储库
数据访问层。
目标
-
从 EarthIT_Schema 对象中提取模式信息。
-
提供对数据库或数据库的读取和存储的一致 API。
-
传入和传出的对象都采用 '模式形式';将对象转换为数据库形式由存储层完成。
-
允许自定义存储层进行额外的转换。
设计原则
-
明确指出对象使用的表示形式,而不是依赖它们之间的偶然相似性。
- 例如,一个接受对象的函数应在其文档中指明该对象应采用哪种形式。
-
数据与管道分离。数据对象只是数组(或,可能,标量值。但通常是数组)。
-
后端无关。可能是 RDB。也可能是其他完全不同的东西。
-
允许高效地访问相同类型对象的集合。
- 函数通常应编写为操作集合,以分摊开销成本。
-
应能够独立使用查询生成和对象转换实用程序。
-
目前不处理多表连接。通过查询 ID 集合在 PHP 中执行连接更容易,尤其是当链接跨越数据库边界时。
对象表示形式
-
数据库内部形式:存储在数据库中的实际位。我们的 PHP 代码永远不会看到这些。
-
数据库外部形式
数据库中的值,经过最小转换以使其在 PHP 中可表示。例如。
- BIGINT 表示为字符串
- GEOMETRY 值表示为 GeoJSON 字符串
键与列名完全对应。
-
模式形式:在 schema.txt 中描述的形式。
JSON 字段被解码
键是 '普通英语' 字段名称。
-
JSO 形式
JSON REST 服务的标准形式。值通常与模式形式中的值相同,但键将使用 '骆驼峰命名法' 而不是 '普通英语'。
- "JSO" 不是拼写错误。此形式的对象是未进行 JSON 编码的 JSON 编码对象,因此没有 'N'。
- 为具有复合键的对象添加 'id' 字段。
- 将此形式转换为/从该形式超出了此库的范围。