gurgentil/laravel-storable

一个用于为您的模型创建存储转换器的 Laravel 扩展包。

1.0.0 2020-12-12 23:30 UTC

This package is auto-updated.

Last update: 2024-09-15 05:12:49 UTC


README

Latest Version GitHub Workflow Status Quality Score MIT Licensed

为您的 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();

您可以通过环境变量或传递给 savedelete 方法来定义磁盘

STORABLE_DISK=gcs
$storable = new StorableUser($user);
$storable->save('gcs');

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献指南

鸣谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件