yonna / mapping
Yonna Mapping值对,不一样的const快感
1.0
2019-08-09 06:27 UTC
Requires
- php: ~7.3
- ext-json: *
This package is auto-updated.
Last update: 2024-11-15 19:37:09 UTC
README
Yonna mapping库
Mapping是一个极其好用的值对管理器
让你轻松管理项目所有的静态值对值
如何安装
可以通过composer安装:composer require yonna/mapping
可以通过git下载:git clone https://github.com/yonna-framework/mapping.git
Yonna demo:GOTO yonna
Example
使用Mapping管理你的静态值吧
<?php namespace MapTest; use Yonna\Mapping\Mapping; // 首先你可以新建一个map类,继承Mapping即可 class Status extends Mapping { // 前面的tag可以作为程序中轻松调用的凭据,后面赋值 const STATUS_1 = '1'; const STATUS_2 = '2'; const STATUS_3 = '3'; // 你(可选地)可以为你的值对添加一些你想要的额外参数,首先新增一个构造函数 // * 默认有label/status值,当然你也可以自己 setOptions public function __construct() { self::setLabel(self::STATUS_1, '状态1'); self::setLabel(self::STATUS_2, '状态2'); self::setLabel(self::STATUS_3, '状态3'); // 等同于 self::setOptions(self::STATUS_1, 'label','状态1'); self::setOptions(self::STATUS_2, 'label','状态2'); self::setOptions(self::STATUS_3, 'label','状态3'); // 你还可以自定义值 self::setOptions(self::STATUS_1, 'power','力量1'); self::setOptions(self::STATUS_2, 'power','力量2'); self::setOptions(self::STATUS_3, 'power','力量3'); } } ?>
创建好你的mapping类之后,可以在任何地方轻松调用,以下是一些例子
<?php use MapTest\Status; class OtherClass{ public function test(){ // 直接取值 $val = Status::STATUS_1; // '1' // 取label $val = Status::getLabel(Status::STATUS_2); // '状态2' // 取自定义值 $val = Status::getOptions(Status::STATUS_3, 'power'); // '力量3' // 取值对所有数据 $val = Status::fetch(); // [['STATUS_1'=>'1'],['STATUS_2'=>'2'],['STATUS_3'=>'3']] // 取值对所有数据的json $val = Status::toJson(); // {"STATUS_1":"1","STATUS_2":"2","STATUS_3":"3"} // 取值数组 $val = Status::toArray(); // ['1','2','3'] // 取值<K,V> $val = Status::toKV(); // [['1'=>'状态1'],['2'=>'状态2'],['3'=>'状态3']] $val = Status::toKV('power'); // [['1'=>'力量1'],['2'=>'力量2'],['3'=>'力量3']] // 取逗号序列 $val = Status::toComma(); // 1,2,3 // mapping默认自带一个status判断,默认为1,你可以设它为其他值达到你想要的逻辑 Status::setStatus(false); // 混合取值 $val = Status::toMixed(); // [ // '1' => ['label'=>'状态1', 'power'=>'力量1', 'status'=>'1',], // '2' => ['label'=>'状态2', 'power'=>'力量2', 'status'=>'1',], // '3' => ['label'=>'状态3', 'power'=>'力量3', 'status'=>'1',] // ] } } ?>