gurgentil / laravel-storable
一个用于为您的模型创建存储转换器的 Laravel 扩展包。
1.0.0
2020-12-12 23:30 UTC
Requires
- php: ^7.2
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- ext-json: *
- orchestra/testbench: ^5.0|^6.0
README
为您的 Eloquent 模型创建存储转换器。
安装
通过 composer 安装此包
composer require gurgentil/laravel-storable
使用方法
创建可存储的类
php artisan make:storable StorableUser
定义要存储的文件路径和对象表示
<?php namespace App\Storables; use App\Models\User; use Gurgentil\LaravelStorable\Storable; class StorableUser extends Storable { /** * @var User */ protected $user; public function __construct(User $user) { $this->user = $user; } /** * Get file path in storage. * * @return string */ public function getFilePath(): string { return "users/{$this->user->uuid}.json"; } /** * Get string representation of object to store. * * @return string */ public function getContents(): string { return json_encode([ 'id' => $this->user->id, 'email' => $this->user->email, 'permissions' => $this->user->permissions->pluck('name')->toArray(), ]); } }
要将对象写入存储,只需在对象上调用 save()
$storable = new StorableUser($user); $storable->save();
调用 delete() 从存储中删除文件
$storable = new StorableUser($user); $storable->delete();
您可以通过环境变量或传递给 save 和 delete 方法来定义磁盘
STORABLE_DISK=gcs
$storable = new StorableUser($user); $storable->save('gcs');
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 变更日志
贡献
有关详细信息,请参阅 贡献指南
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件