intrfce/laravel-frontend-enums

停止在前端JavaScript中使用'魔法'字符串/数字,而使用您实际应用的枚举。

v0.7.1 2024-07-11 09:23 UTC

This package is auto-updated.

Last update: 2024-09-28 14:18:09 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

将您的PHP枚举发布到应用的前端,以便您可以在JavaScript代码中引用它们。

安装

您可以通过composer安装此包

composer require intrfce/laravel-frontend-enums

用法

在您的 AppServiceProvider.php 中,告诉包您想发布的枚举

use Intrfce\LaravelFrontendEnums\Facades\PublishEnums;

PublishEnums::publish([
    \App\Enums\MyEnum::class,
    \App\Enums\MyOtherEnum::class,
])->toDirectory(resource_path('js/Enums'));

然后运行发布命令

php artisan publish:enums-to-javascript

您的枚举将等待在您指定的路径,文件扩展名为 .enum.js

MyEnum.enum.js
MyOtherEnum.enum.js

然后您可以在JavaScript代码中导入并使用它们

import {MyEnum} from './Enums/MyEnum.enum.js';
import {MyOtherEnum} from './Enums/MyOtherEnum.enum.js';

console.log(MyEnum.FOO); // 0
console.log(MyOtherEnum.BAR); // 'bar'

TypeScript 支持

TypeScript支持已内置:只需在 AppServiceProvider.php 中的枚举列表中添加 ->asTypescript()

PublishEnums::publish([
    \App\Enums\MyEnum::class,
    \App\Enums\MyOtherEnum::class,
])
->asTypescript()
->toDirectory(resource_path('js/Enums'));

文件将以 .ts 文件和TypeScript原生枚举的形式输出

export enum MyEnum {
    FOO = 0,
    BAR = 1,
    BAZ = 2,
}

在更改时自动生成javascript文件。

您可以使用来自 lepikhinbvite-plugin-watch 包来自动生成当您更改PHP枚举时的javascript文件

npm install -D vite-plugin-watch

然后将插件添加到您的 vite.config.js

import { defineConfig } from "vite"
import { watch } from "vite-plugin-watch"

export default defineConfig({
  plugins: [ 
    watch({
      pattern: "app/Enums/**/*.php",
      command: "php artisan publish:enums-to-javascript",
    }),
  ],
})

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 以获取详细信息。

安全

如果您发现任何安全问题,请通过电子邮件dan@danmatthews.me联系,而不是使用问题跟踪器。

致谢

许可

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