1. Go to this page and download the library: Download yesccx/laravel-enum library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yesccx / laravel-enum example snippets
php
declare(strict_types = 1);
use App\Enums\User\StatusEnum;
function check_user_status(User $user): User
{
# 判断值是否符合预期
if ($user->status != StatusEnum::ON) {
throw new \Exception('用户已被禁用!');
}
return $user;
}
php
use App\Enums\User\StatusEnum;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
class User extends Model
{
/**
* 访问器:状态-说明
*
* @return Attribute
*/
public function statusDefinition(): Attribute
{
return Attribute::make(
get: fn () => StatusEnum::make()->translate($this->status)
)
}
}
$user = User::query()->find(1);
echo $user->status; # 1
echo $user->status_definition; # 启用
php
use App\Enums\User\StatusEnum;
use App\Enums\User\GenderEnum;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
class User extends Model
{
/**
* 访问器:状态-说明
*
* @return Attribute
*/
public function statusDefinition(): Attribute
{
return StatusEnum::make()->toAttribute($this, 'status', default: '');
}
/**
* 访问器:性别-说明
*
* @return Attribute
*/
public function genderDefinition(): Attribute
{
return GenderEnum::makeAttribute($this, default: '');
}
}
php
declare(strict_types = 1);
namespace App\Enums\User;
use Yesccx\Enum\BaseEnum;
use Yesccx\Enum\Supports\Message;
# 用户-启用状态
final class StatusEnum extends BaseEnum
{
public const OFF = 0;
public const ON = 0;
public function loadColumnMap(): array
{
# Anything ...
return [
self::OFF => '禁用',
self::OFF => '启用'
]
}
}
php
use Yesccx\Enum\BaseEnum;
# 用户状态
final class UserStatusEnum extends BaseEnum implements CommonStatusEnum
{
}
/**
* 文章 枚举类
*/
final class ArticleStatusEnum extends BaseEnum implements CommonStatusEnum
{
}
echo UserStatusEnum::OFF; # 0
echo ArticleEnum::OFF; # 0
shell
php artisan enum:cache
shell
php artisan enum:clear
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.