urbanindo / yii2-dynamodb
Yii2 的 DynamoDB 扩展
2.0.15
2019-02-22 03:54 UTC
Requires
- php: >=7.2
- aws/aws-sdk-php: ~3.28
- yiisoft/yii2: ~2.0.15
Requires (Dev)
- flow/jsonpath: dev-master
- fzaninotto/faker: dev-master
- phing/phing: 2.16.1
- phpunit/php-code-coverage: ^5.3
- phpunit/phpunit: 6.5.*
- squizlabs/php_codesniffer: 2.*
- yiisoft/yii2-coding-standards: *
This package is auto-updated.
Last update: 2024-09-22 17:07:00 UTC
README
这是一个 Yii2 的 DynamoDB 扩展
需求
此扩展需要
- PHP 最小版本 7.0 且不超过 7.2(升级仍在进行中)
- Yii2 最小版本 2.0.13 且低于 2.1
- AWS PHP SDK 3.28
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
php composer.phar require --prefer-dist urbanindo/yii2-dynamodb "*"
或者
"urbanindo/yii2-dynamodb": "*"
将以下内容添加到您的 composer.json
文件的 require 部分中。
设置
安装后,在配置中设置 dynamodb
组件。
return [ // ... 'components' => [ // ... 'dynamodb' => [ 'class' => 'UrbanIndo\Yii2\DynamoDb\Connection', 'config' => [ //This is the config used for Aws\DynamoDb\DynamoDbClient::factory() //See http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-dynamodb.html#factory-method 'credentials' => [ 'key' => 'YOUR_AWS_ACCESS_KEY_ID', 'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY', ], 'region' => 'ap-southeast-1', ] ] ], ];
限制
由于 DynamoDB 与 MySQL 的行为不同,因此应用了几个限制或行为更改。从 DynamoDB 获取数据的方法有: GetItem、BatchGetItem、Scan 和 Query。
- 我们已尝试实现从查询中自动获取模型的方法。如果您想强制使用该方法,请显式分配方法。
- 尚未支持属性名别名(在 MySQL 中称为字段别名)。
- 在使用 Query 方法时,WHERE 条件仅支持按键属性过滤。在下一个版本中,我们将添加对非键属性的过滤。
- 为了实现分页,我们强制使用 Query 方法,当 WHERE 条件设置时。因为如果您使用非键属性的过滤,则模型结果(可能)将少于期望的限制值。
indexBy
和orderBy
不能与属性字符串值或可调用参数一起使用。这将作为字符串值使用,并分配给 DynamoDB 中的IndexName
参数。要使用排序,这将强制使用 QUERY 方法,并且orderBy
参数应该是['myIndex' => 'ASC']
或['myIndex', 'DESC']
,并且需要定义键条件表达式。- 不支持 NULL 和任何类型的集合属性。
- 不支持属于保留关键字的属性别名,这意味着所有属性都不使用任何 保留关键字。
- 当使用 LinkPager 时,请勿忘记使用此包中的 ActiveDataProvider。当分页传递到任何类型的 Widget 视图时,一些组件可能不受支持,例如 SerialColumn、摘要中的不必要的总项目数和排序。