saas-laravel/laravel-enums-to-json

该软件包可以从枚举值生成一个json文件

3.0.0 2024-05-14 07:47 UTC

This package is not auto-updated.

Last update: 2024-09-17 09:46:28 UTC


README

这个软件包的目的是简化后端和前端之间枚举值的共享过程。

如果您使用Laravel作为前端框架(如Nuxt或Next)的后端,并且它们都位于同一个项目中,您可以使用它来从您的枚举生成一个json文件。

安装

您可以通过composer安装此软件包

composer require saas-laravel/laravel-enums-to-json

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="laravel-enums-to-json"

这是已发布的配置文件的内容

return [
    // The disk, defined in filesystem.php, where json files will be stored
    'disk' => 'public',

    // The folder on that disk where json will be generated
    'path' => '/shared',

    'enum_locations' => [
        app_path(),
    ],
];

用法

为了使用此软件包,您需要将 SaasLaravel\LaravelEnumsToJson\Attributes\EnumToJson 属性添加到您的枚举中

示例用法

<?php

namespace App\Enums;

use SaasLaravel\LaravelEnumsToJson\Attributes\EnumToJson; 

#[EnumToJson] //add attribute
enum CastType: int
{
    case Boolean = 0;
    case Integer = 1;
    case String = 2;

    // (optional) A way to customize the generated file name
    public static function jsonFileName(): string
    {
        return 'cast';
    }
}

然后您将运行一个命令来生成json文件。

php artisan enum-to-json:generate

自定义名称

默认情况下,它将生成一个文件,其名称为枚举名称的规范化版本 - 如果上述示例中不包含 jsonFileName 方法,那么将是 cast_type.json。然而,因为它存在,所以将生成 cast.json

测试

composer test

致谢

许可

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