PHP code example of asfop / constants
1. Go to this page and download the library: Download asfop/constants 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/ */
asfop / constants example snippets
class ErrorCode
{
const SERVER_ERROR = 500;
const PARAMS_INVALID = 1000;
public static $messages = [
self::SERVER_ERROR => 'Server Error',
self::PARAMS_INVALID => '参数非法'
];
}
$message = ErrorCode::messages[ErrorCode::SERVER_ERROR] ?? '未知错误';
use Asfop\Constants\Constant;
class ExampleConstant extends Constant
{
/**
* @message("登录")
*/
const SIGN_IN = 0;
/**
* @message("注册")
*/
const REGISTER = 1;
/**
* @message("找回密码")
*/
const RETRIEVE_PASSWORD = 2;
/**
* @message("注销账号")
* @messageEn("Account cancellation")
* @messageZhTW("註銷賬號")
*/
const CANCEL_ACCOUNT = 3;
// /**
// * 重写从注解里面拿到的Message
// * @param mixed $description 描述
// * @param mixed $key key
// * @param mixed $value 值
// * @return mixed
// */
// protected static function message($description, $key, $value)
// {
// return $description;
// }
}
// 获取常量的值
ExampleConstant::SIGN_IN;// 0
// 获取所有已定义常量的名称
$keys = ExampleConstant::getKeys();// ['SIGN_IN ', 'REGISTER', 'RETRIEVE_PASSWORD ', 'CANCEL_ACCOUNT']
// 根据常量的值获取常量的名称
ExampleConstant::getKey(1);// REGISTER
// 获取所有已定义常量的值
$values = ExampleConstant::getValues();// [0, 1, 2, 3]
// 根据常量的名称获取常量的值
ExampleConstant::getValue('REGISTER ');// 1
// 返回中文描述
ExampleConstant::getDescription(ExampleConstant::CANCEL_ACCOUNT);// 注销账号
// 返回指定语言描述,参数二为语言文化代码,在枚举注解中无需“-”
ExampleConstant::getDescriptionI18n(ExampleConstant::CANCEL_ACCOUNT, 'en');// Account cancellation
// 补充:也可以先实例化常量对象,然后再根据对象实例来获取常量描述
$responseEnum = new ExampleEnum(ExampleEnum::CANCEL_ACCOUNT);
$responseEnum->description;// 注销账号
// 其他方式
ExampleConstant::CANCEL_ACCOUNT()->description;// 注销账号
// 检查定义的常量中是否包含某个「常量值」
ExampleConstant::hasValue(1);// true
ExampleConstant::hasValue(-1);// false
// 检查定义的常量中是否包含某个「常量名称」
ExampleConstant::hasKey('CANCEL_ACCOUNT ');// true
ExampleConstant::hasKey('ACCOUNT ');// false
// 方式一:new 传入常量的值
$administrator1 = new ExampleConstant(ExampleConstant::CANCEL_ACCOUNT);
// 方式二:fromValue
$administrator2 = ExampleConstant::fromValue(0);
Asfop\Tests\Constants\ExampleConstant Object
(
[description] => 登录
[key] => SIGN_IN
[value] => 0
)
// 方式三:fromKey
$administrator3 = ExampleConstant::fromKey('CANCEL_ACCOUNT');
Asfop\Tests\Constants\ExampleConstant Object
(
[description] => 注销账号
[key] => CANCEL_ACCOUNT
[value] => 3
)
// 方式四:magic
$administrator4 = ExampleConstant::CANCEL_ACCOUNT();
Asfop\Tests\Constants\ExampleConstant Object
(
[description] => 注销账号
[key] => CANCEL_ACCOUNT
[value] => 3
)
$array = ExampleConstant::toArray();
/*
[
'SIGN_IN' => 0,
'REGISTER' => 1,
'RETRIEVE_PASSWORD' => 2,
'CANCEL_ACCOUNT' => 3,
]
*/
$array = ExampleConstant::toSelectArray();
/*
[
0 => '登录',
1 => '注册',
2 => '找回密码',
3 => '注销账号',
]
*/
// 枚举可以存在多个注解,枚举定义:
/**
* @message("注销账号")
* @color("danger")
* ...
*/
const CANCEL_ACCOUNT = 0;
// 使用,获取指定枚举单个注解值
ExampleConstant::getAnnotationOne(ExampleConstant::CANCEL_ACCOUNT, 'color');// danger
// 获取指定枚举所有注解值
ExampleConstant::getAnnotationList(ExampleConstant::CANCEL_ACCOUNT);
/*
[
{
"function": "message",
"value": "注销账号"
},
{
"function": "color",
"value": "danger"
}
]
*/