پکیچ cerbero/laravel-enum این کار را برای ما فراهم می کند .
برای نصب این پکیج در پروژه لاراولی خود ، ابتدا باید آن را به وسیله کامپوزر دانلود کنیم :
composer require cerbero/laravel-enum
بعد از نصب میتوانیم به شکل زیر استفاده کنیم ، فرض کنید می خواهیم دوره پرداخت حق اشتراک کاربران را در یک enum نگه داری کنیم :
php artisan make:enum AccountType "FREE|MONTHLY|YEARLY"
بعد از اجرای این دستور ، در دایرکتوری app\Enums یک فایل به نام AccountType.php ساخته می شود که دارای محتویات زیر می باشد :
<?php
namespace App\Enums;
use Rexlabs\Enum\Enum;
/**
* The AccountType enum.
*
* @method static self FREE()
* @method static self MONTHLY()
* @method static self YEARLY()
*/
class AccountType extends Enum
{
const FREE = 'free';
const MONTHLY = 'monthly';
const YEARLY = 'yearly';
}
هنگام ساخت enum می توانیم ، مقدار های پیش فرض هم برای آن تعیین کنیم ، به عنوان مثال میخواهیم اندازه سایز avatar کاربران را در یک anum نگه داری کنیم:
php artisan make:enum AvatarSize "SMALL=24x24|MEDIUM=48x48|LARGE=128x128"
بعد از اجرای کد بالا یک کلاس به نام AvatarSize ساخته می شود:
<?php
namespace App\Enums;
use Rexlabs\Enum\Enum;
/**
* The AvatarSize enum.
*
* @method static self SMALL()
* @method static self MEDIUM()
* @method static self LARGE()
*/
class AvatarSize extends Enum
{
const SMALL = '24x24';
const MEDIUM = '48x48';
const LARGE = '128x128';
}
حالا می توانیم از enum ساخته شده در برنامه خود استفاده کنیم .