sakanjo/laravel-easy-enum

エnumと簡単に作業する。

パッケージのメンテナンスを資金援助!
sakanjo

v1.0.1 2024-07-24 01:09 UTC

This package is auto-updated.

Last update: 2024-09-24 14:01:10 UTC


README

Workflow status Laravel v11.x PHP 8.2

エnumと簡単に作業。

✨このパッケージのメンテナンスをサポートするために、私をスポンサーにしてください。

LaravelFilament、その他と一緒に作成

Preview

目次

📦 インストール

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