nick-denry / managed-constant-models
允许通过独立的类模型声明带有命名属性的常量
0.1.0
2021-04-25 21:58 UTC
Requires
- php: >=7.2
README
允许通过独立的类模型声明带有命名属性的常量安装
安装此扩展的首选方式是通过 composer。
运行
php composer.phar require --prefer-dist nick-denry/managed-constant-models
或者
"nick-denry/managed-constant-models": "^0.1.0"
将以下内容添加到您的 composer.json 文件的 require 部分。
使用方法
-
创建管理常量模型
<?php namespace app\models; use nickdenry\managedConstants\interfaces\ManagedConstantInterface; use nickdenry\managedConstants\traits\ManagedConstantTrait; /** * TaskStatus constant model */ class TaskStatus implements ManagedConstantInterface { use ManagedConstantTrait; const ACTIVE = 0; const DONE = 1; const _ATTRIBUTES = [ self::ACTIVE => [ 'class' => 'task-active', 'label' => 'Активна', ], self::DONE => [ 'class' => 'task-done', 'label' => 'Завершена', ], ]; }
-
与您的其他模型类(例如 yii2 模型)一起使用
<?php namespace app\models; use app\models\TaskStatus; /** * This is the model class for table "task". * * @property int $id * @property string $title * @property int|null $created_at * @property int|null $updated_at */ class Task extends \yii\db\ActiveRecord { ... /** * Get task statuses. */ public static function getStatuses() { return new TaskStatus(); //TaskStatus()::class; } ... }
-
通过代码获取常量
<?php $constValue = Task::getStatuses()::ACTIVE; //$constValue = 0; Task::getStatuses()::ACTIVE; // ACTIVE constant; Task::getStatuses()::DONE; // DONE constant; Task::getStatuses()::constants(); // Returns array ['ACTIVE' => 0, 'DONE' => 1] Task::getStatuses()::values(); // Returns array [0, 1] Task::getStatuses()::listAttributes($constValue); // Returns array ['class' => 'task-active', 'label' => 'Активна'] Task::getStatuses()::attribute($constValue, 'class'); // Returns 'task-active' Task::getStatuses()::getList(); // Returns [ // ['id' => 0, 'class' => 'task-active', 'label' => 'Активна', ] // ['id' => 1, 'class' => 'task-done', 'label' => 'Завершена', ], // ]