saas-laravel / laravel-enums-to-json
该软件包可以从枚举值生成一个json文件
3.0.0
2024-05-14 07:47 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.14.0
- spatie/php-structure-discoverer: ^2.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^v8.1.1
- orchestra/testbench: ^v9.0.4
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
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)。有关更多信息,请参阅许可文件。