urbanindo/yii2-dynamodb 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

urbanindo/yii2-dynamodb

最新稳定版本:2.0.15

Composer 安装命令:

composer require urbanindo/yii2-dynamodb

包简介

DynamoDB extensions for Yii2

README 文档

README

This is a DynamoDB extension for Yii2

Latest Stable Version Total Downloads Latest Unstable Version Build Status

Requirement

This extension requires

  • PHP minimum 7.0 and before 7.2 (Upgrade is still underwork)
  • Yii2 minimum 2.0.13 and lesser than 2.1
  • AWS PHP SDK 3.28

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist urbanindo/yii2-dynamodb "*"

or add

"urbanindo/yii2-dynamodb": "*"

to the require section of your composer.json file.

Setting Up

After the installation, sets the dynamodb component in the config.

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',
            ]
        ]
    ],
];

Limitation

Because DynamoDB have different behavior from MySQL, there are several limitations or behavior change applied. There are several method to get data from DynamoDB: GetItem, BatchGetItem, Scan, and Query.

  1. We have tried to implement automatic method to acquire model from Query. You should assign method explicitly if you want to force the method to use.
  2. Not yet support attribute name aliasing (In MySQL known as field aliasing).
  3. When using Query method, where condition just support filter by key attributes. In next roll out we will add filtering with non key attributes.
  4. To make pagination, we forcedly using Query method when WHERE condition is set. Because if you use filtering with non key attribute, it is possible the model result(s) will less than desired limit value.
  5. indexBy and orderBy cannot use with attribute string value or callable parameter. This will use as string value and assign to IndexName parameter in DynamoDB. To use sorting, this will forcedly use QUERY method and orderBy parameter should be either ['myIndex' => 'ASC'] or ['myIndex', 'DESC'] and key condition expression should be defined.
  6. Not support NULL and any kind of set attribute type.
  7. Not support attribute aliasing belong to Reserve Keywords, which means all attributes do not using any Reserve Keywords.
  8. When use LinkPager, do not forget use ActiveDataProvider from this package. When the pagination pass into any kind of Widget View, several components maybe unsupported like SerialColumn, unnecessary total items in summary, and sorting.

统计信息

  • 总下载量: 70.48k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 14
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 14
  • Watchers: 6
  • Forks: 15
  • 开发语言: PHP

其他信息

  • 授权协议: BSD
  • 更新时间: 2015-09-14