定制 blu3code/dynamodb-laravel 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

blu3code/dynamodb-laravel

Composer 安装命令:

composer require blu3code/dynamodb-laravel

包简介

AWS DynamoDB adapter for Laravel

README 文档

README

AWS DynamoDB Eloquent ORM Driver

Prerequisites

  • PHP 8.3
  • Laravel 10+

Installation

1. Install via composer

$ composer require blu3code/dynamodb-laravel

2. Patch DynamoDB config file (config/database.php)

'dynamodb' => [
    'key' => env('DYNAMODB_KEY_ID'),
    'secret' => env('DYNAMODB_ACCESS_KEY'),
    'region' => env('DYNAMODB_REGION'),
    'endpoint' => env('DYNAMODB_ENDPOINT'),
]

Modify your environment:

DYNAMODB_KEY_ID={AWS IAM Key ID}
DYNAMODB_ACCESS_KEY={AWS IAM Access Key}
DYNAMODB_REGION={AWS Region code}
# only for dynamodb-local
DYNAMODB_ENDPOINT=http://127.0.0.1:8080

Usage and examples

Model structure

namespace App\Models\DynamoDB;

use Blu3\DynamoDB\Eloquent\Model;

class User extends Model {
    // Not necessary. Can be obtained from class name MyTable => my_tables
    protected string $table = 'users';
}

Find model instance and update attributes

use App\Models\DynamoDB\User;

$user = User::findOrFail('0e00232f-c55d-4879-bb31-236f2eea82f9');
$user->update([
    'filename' => '1234.jpg' 
]);

Create new model

use App\Models\DynamoDB\User;

$user = new User();
$user->fill([
    'id' => str()->uuid()->toString(),
    'name' => 'Alex'
]);
$user->save();

Alternative way to create model

use App\Models\DynamoDB\User;

$user = User::create([
    'id' => str()->uuid()->toString(),
    'name' => 'Alex'
]);

Attribute casts

namespace App\Models\DynamoDB;

use Blu3\DynamoDB\Eloquent\Model;

class User extends Model {
    protected string $dateFormat = 'Y-m-d H:i:s.v';
    protected array $casts = [
        'roles' => 'array',
        'created_at' => 'datetime',
    ];
}
use App\Models\DynamoDB\User;
use Carbon\CarbonImmutable;

$user = new User();
$user->fill([
    'id' => str()->uuid()->toString(),
    'name' => 'Alex',
    'roles' => ['admin', 'manager'],
    'created_at' => CarbonImmutable::now()
]);
$user->save();

Advanced usage

Find model using strong consistent read

use App\Models\DynamoDB\User;

$user = User::query()->withConsistentRead(true)->findOrFail($id);

Always find model using strong consistent read

namespace App\Models;

use Blu3\DynamoDB\Eloquent\Model;

class User extends Model {
    private bool $consistentRead = true;
}

统计信息

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

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: 未知许可证
  • 更新时间: 2024-01-21