davidianbonner/enumerated

枚举(Enums)代表一组预定义值。对于确保数据一致性非常有用。

v7.0.0 2024-05-16 13:38 UTC

This package is auto-updated.

Last update: 2024-09-16 14:20:54 UTC


README

Author Build Status Quality Score Software License Packagist Version Coverage Status

枚举类型(Enum)是一种数据类型,它由一组预定义值组成。这可以用来确保数据一致性。枚举包提供了一个简单的基类,用于创建枚举类型,允许开发者静态定义值。

安装

通过 Composer

$ composer require davidianbonner/enumerated

用法

大多数应用程序都需要某种形式的枚举类型。PHP 目前没有原生的枚举支持(参见:[https://wiki.php.net/rfc/enum](https://wiki.php.net/rfc/enum))。为了解决这个问题,我们通常将预定义值组打包到配置或设置文件中作为数组。但这并不能直接表示数据或其类型。

之前

<?php

return [
    'language' => [
        'php' => 'php',
        'javascript' => 'js',
        'css' => 'css',
        'go' => 'go',
    ],
];

使用方式

$codebase->language = config('language.php');

// or

foreach (config('language') as $language) {
    echo '<option value="'.$language.'">'.$language.'</option>';
}

之后

对于这组值,枚举会是一个更好的选择。

<?php

use DavidIanBonner\Enumerated\Enum;

class Language extends Enum
{
    const PHP = 'php';
    const JAVASCRIPT = 'js';
    const GO = 'go';
    const CSS = 'css';
}

使用方式

$codebase->language = Language::PHP;

// or

$type = Language::PHP;
$codebase->language = Language::ofType($type)->value();

// or

foreach (Language::allValues() as $language) {
    echo '<option value="'.$language.'">'.$language.'</option>';
}

验证值

值可以与预定义值进行验证

if (Language::isValid($value)) {
    // Is valid
}

Laravel 集合实例

此包需要 Laravel 支持包,以便返回可用值的集合

// Returns an instance of Illuminate\Support\Collection
Language::collect();

返回键值

allValuescollect 方法将接受一个布尔参数,以返回键/常量名称

$values = Language::allValues(true);

// Returns
[
    'PHP' => 'php',
    'JAVASCRIPT' => 'js',
    'CSS' => 'css',
    'GO' => 'go',
]

变更日志

有关最近更改的更多信息,请参阅变更日志

测试

$ phpunit test

贡献

有关详细信息,请参阅贡献指南行为准则

安全性

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

致谢

许可

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