blu3code / dynamodb-laravel
此包已被弃用,不再维护。未建议替代包。
AWS DynamoDB 适配器用于 Laravel
此包尚未发布版本,信息很少。
README
AWS DynamoDB Eloquent ORM 驱动程序
先决条件
- PHP 8.3
- Laravel 10+
安装
1. 通过 composer 安装
$ composer require blu3code/dynamodb-laravel
2. 修复 DynamoDB 配置文件(config/database.php)
'dynamodb' => [ 'key' => env('DYNAMODB_KEY_ID'), 'secret' => env('DYNAMODB_ACCESS_KEY'), 'region' => env('DYNAMODB_REGION'), 'endpoint' => env('DYNAMODB_ENDPOINT'), ]
修改您的环境
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
使用方法和示例
模型结构
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'; }
查找模型实例并更新属性
use App\Models\DynamoDB\User; $user = User::findOrFail('0e00232f-c55d-4879-bb31-236f2eea82f9'); $user->update([ 'filename' => '1234.jpg' ]);
创建新模型
use App\Models\DynamoDB\User; $user = new User(); $user->fill([ 'id' => str()->uuid()->toString(), 'name' => 'Alex' ]); $user->save();
创建模型的其他方式
use App\Models\DynamoDB\User; $user = User::create([ 'id' => str()->uuid()->toString(), 'name' => 'Alex' ]);
属性类型转换
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();
高级使用
使用强一致性读取查找模型
use App\Models\DynamoDB\User; $user = User::query()->withConsistentRead(true)->findOrFail($id);
始终使用强一致性读取查找模型
namespace App\Models; use Blu3\DynamoDB\Eloquent\Model; class User extends Model { private bool $consistentRead = true; }