{"id":33977624,"url":"https://github.com/yonna-framework/mapping","last_synced_at":"2026-06-09T07:32:16.761Z","repository":{"id":57087861,"uuid":"194508557","full_name":"yonna-framework/mapping","owner":"yonna-framework","description":"Mapping是一个极其好用的值对管理器,让你轻松管理项目所有的静态值对值","archived":false,"fork":false,"pushed_at":"2020-05-15T09:50:37.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-14T15:19:12.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yonna-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-30T11:32:21.000Z","updated_at":"2019-08-09T06:27:26.000Z","dependencies_parsed_at":"2022-08-24T07:30:35.875Z","dependency_job_id":null,"html_url":"https://github.com/yonna-framework/mapping","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/yonna-framework/mapping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yonna-framework%2Fmapping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yonna-framework%2Fmapping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yonna-framework%2Fmapping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yonna-framework%2Fmapping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yonna-framework","download_url":"https://codeload.github.com/yonna-framework/mapping/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yonna-framework%2Fmapping/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34096950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-13T02:29:31.466Z","updated_at":"2026-06-09T07:32:16.755Z","avatar_url":"https://github.com/yonna-framework.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/github/license/yonna-framework/mapping.svg)](https://packagist.org/packages/yonna/mapping)\n[![Repo Size](https://img.shields.io/github/repo-size/yonna-framework/mapping.svg)](https://packagist.org/packages/yonna/mapping)\n[![Downloads](https://img.shields.io/packagist/dm/yonna/mapping.svg)](https://packagist.org/packages/yonna/mapping)\n[![Version](https://img.shields.io/github/release/yonna-framework/mapping.svg)](https://packagist.org/packages/yonna/mapping)\n[![Php](https://img.shields.io/packagist/php-v/yonna/mapping.svg)](https://packagist.org/packages/yonna/mapping)\n\n## Yonna mapping库\n\n```\nMapping是一个极其好用的值对管理器\n让你轻松管理项目所有的静态值对值\n```\n\n## \n\n#### 如何安装\n\n##### 可以通过composer安装：`composer require yonna/mapping`\n\n##### 可以通过git下载：`git clone https://github.com/yonna-framework/mapping.git`\n\n\u003e Yonna demo：[GOTO yonna](https://github.com/yonna-framework/yonna)\n\n### Example\n\n\u003e 使用Mapping管理你的静态值吧\n```php\n\u003c?php\n    namespace MapTest;\n\n    use Yonna\\Mapping\\Mapping;\n    // 首先你可以新建一个map类，继承Mapping即可\n    \n    class Status extends Mapping\n    {\n    \n        // 前面的tag可以作为程序中轻松调用的凭据，后面赋值\n        const STATUS_1 = '1';\n        const STATUS_2 = '2';\n        const STATUS_3 = '3';\n        \n        // 你（可选地）可以为你的值对添加一些你想要的额外参数，首先新增一个构造函数\n        // * 默认有label/status值，当然你也可以自己 setOptions\n        \n        public function __construct() {\n            self::setLabel(self::STATUS_1, '状态1');\n            self::setLabel(self::STATUS_2, '状态2');\n            self::setLabel(self::STATUS_3, '状态3');\n            // 等同于\n            self::setOptions(self::STATUS_1, 'label','状态1');\n            self::setOptions(self::STATUS_2, 'label','状态2');\n            self::setOptions(self::STATUS_3, 'label','状态3');\n            // 你还可以自定义值\n            self::setOptions(self::STATUS_1, 'power','力量1');\n            self::setOptions(self::STATUS_2, 'power','力量2');\n            self::setOptions(self::STATUS_3, 'power','力量3');\n        }\n    }\n    \n?\u003e\n```\n\n\u003e 创建好你的mapping类之后，可以在任何地方轻松调用，以下是一些例子\n```php\n\u003c?php\n    \n    use MapTest\\Status;\n    \n    class OtherClass{\n        \n        public function test(){\n            \n            // 直接取值\n            $val = Status::STATUS_1; // '1'\n            \n            // 取label\n            $val = Status::getLabel(Status::STATUS_2); // '状态2'\n            \n            // 取自定义值\n            $val = Status::getOptions(Status::STATUS_3, 'power'); // '力量3'\n            \n            // 取值对所有数据\n            $val = Status::fetch(); // [['STATUS_1'=\u003e'1'],['STATUS_2'=\u003e'2'],['STATUS_3'=\u003e'3']]\n            \n            // 取值对所有数据的json\n            $val = Status::toJson(); // {\"STATUS_1\":\"1\",\"STATUS_2\":\"2\",\"STATUS_3\":\"3\"}\n                        \n            // 取值数组\n            $val = Status::toArray(); // ['1','2','3']\n            \n            // 取值\u003cK,V\u003e\n            $val = Status::toKV(); // [['1'=\u003e'状态1'],['2'=\u003e'状态2'],['3'=\u003e'状态3']]\n            $val = Status::toKV('power'); // [['1'=\u003e'力量1'],['2'=\u003e'力量2'],['3'=\u003e'力量3']]\n            \n            // 取逗号序列\n            $val = Status::toComma(); // 1,2,3\n            \n            // mapping默认自带一个status判断，默认为1，你可以设它为其他值达到你想要的逻辑\n            Status::setStatus(false);\n            \n            // 混合取值\n            $val = Status::toMixed();\n            // [\n            //    '1' =\u003e ['label'=\u003e'状态1', 'power'=\u003e'力量1', 'status'=\u003e'1',],\n            //    '2' =\u003e ['label'=\u003e'状态2', 'power'=\u003e'力量2', 'status'=\u003e'1',],\n            //    '3' =\u003e ['label'=\u003e'状态3', 'power'=\u003e'力量3', 'status'=\u003e'1',]\n            // ]\n            \n        }\n        \n    }\n    \n?\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyonna-framework%2Fmapping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyonna-framework%2Fmapping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyonna-framework%2Fmapping/lists"}