sakanjo / laravel-easy-enum
エnumと簡単に作業する。
v1.0.1
2024-07-24 01:09 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0 || ^11.0
Requires (Dev)
- laravel/pint: ^1.1
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.3
- phpstan/phpstan: ^1.1
This package is auto-updated.
Last update: 2024-09-24 14:01:10 UTC
README
エnumと簡単に作業。
✨このパッケージのメンテナンスをサポートするために、私をスポンサーにしてください。
Laravel、Filament、その他と一緒に作成
目次
📦 インストール
composer require sakanjo/laravel-easy-enum
🦄 使用方法
1. エnumを作成
<?php namespace App\Enums; use SaKanjo\EasyEnum; enum ExampleEnum: int { use EasyEnum; case Active = 0; case NOPE = 1; }
2. langファイルを作成
// lang/en/enums.php <?php use App\Enums; return [ Enums\ExampleEnum::class => [ Enums\ExampleEnum::NOPE->name => 'Nope', // ... ], // ... ];
それだけです!
📚 メソッド
getLabel
エnum値のラベルを返します。
Status::Active->getLabel(); // Active
is
エnumが他のエnumに等しいか確認します。
$enum1->is($enum2); // boolean
isNot
isの逆。
$enum1->isNot($enum2); // boolean
in
エnumがエnumのリストに含まれているか確認します。
$enum->in([$enum1, $enum2]); // boolean
notIn
inの逆。
$enum->notIn([$enum1, $enum2]); // boolean
tryFromName
文字列を対応するエnum値に安全に変換します(見つからない場合はnullを返します)。
Status::tryFromName('Active'); // Status::Active Status::tryFromName('Oops'); // null
文字列を対応するエnum値に変換します(見つからない場合は例外を投げます)。
fromName
Status::fromName('Active'); // Status::Active Status::fromName('Oops'); // Throws ValueError exception
names
ケース名のリストを返します。
Status::names(); // ['Active', 'NOPE']
values
ケース値のリストを返します。
Status::values(); // [0, 1]
options
ケース名と値の連想配列を返します。
Status::options(); // ['Active' => 0, 'NOPE' => 1] Status::options(true); // ['Active' => 0, 'Nope' => 1]
toHtml
getLabelの別名、bladeで使用すると便利です。
Status::Active->toHtml(); // Active
🔥 実践的な例
Filamentphp
Enum
<?php namespace App\Enums; use Filament\Support\Contracts\HasLabel; use SaKanjo\EasyEnum; enum Status: int implements HasLabel { use EasyEnum; case Active = 0; case Disabled = 1; }
リソース
<?php use Filament\Forms; use App\Enums; Forms\Components\Select::make('status') ->options(Enums\Status::class);
Laravel blade
<?php namespace App\Enums; use Illuminate\Contracts\Support\Htmlable; use SaKanjo\EasyEnum; enum Status: int implements Htmlable { use EasyEnum; case Active = 0; case Disabled = 1; }
<div> Current status: {{ auth()->user()->status }} </div>
💖 開発をサポート
このプロジェクトが気に入りましたか?寄付してサポートしてください
リポジトリのトップに表示される"💖 Sponsor"をクリックしてください。
©️ クレジット
📄 ライセンス
MIT License © 2023-PRESENT Salah Kanjo