2017 © Pedro Peláez
 

yii2-extension yii2-enum

Yii2 Enumerable helpers

image

yii2mod/yii2-enum

Yii2 Enumerable helpers

  • Monday, September 11, 2017
  • by disem
  • Repository
  • 3 Watchers
  • 40 Stars
  • 41,728 Installations
  • PHP
  • 12 Dependents
  • 0 Suggesters
  • 11 Forks
  • 0 Open issues
  • 11 Versions
  • 12 % Grown

The README.md

, (*1)

Enum Extension for Yii2


Enum implementation for Yii Framework 2.0, (*2)

Latest Stable Version Total Downloads License Build Status Scrutinizer Code Quality, (*3)

Support us

Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff., (*4)

Installation

The preferred way to install this extension is through composer., (*5)

Either run, (*6)

php composer.phar require --prefer-dist yii2mod/yii2-enum "*"

or add, (*7)

"yii2mod/yii2-enum": "*"

to the require section of your composer.json file., (*8)

Available Methods:

  • createByName() - Creates a new type instance using the name of a value.
  • getValueByName() - Returns the constant key by value(label)
  • createByValue() - Creates a new type instance using the value.
  • listData() - Returns the associative array with constants values and labels
  • getLabel()- Returns the constant label by key
  • getConstantsByName() - Returns the list of constants (by name) for this type.
  • getConstantsByValue() - Returns the list of constants (by value) for this type.
  • isValidName() - Checks if a name is valid for this type.
  • isValidValue() - Checks if a value is valid for this type.

Declaration

<?php

namespace app\models\enums;

use yii2mod\enum\helpers\BaseEnum;

class PostStatus extends BaseEnum
{
    const PENDING = 0;
    const APPROVED = 1;
    const REJECTED = 2;
    const POSTPONED = 3;

    /**
     * @var string message category
     * You can set your own message category for translate the values in the $list property
     * Values in the $list property will be automatically translated in the function `listData()`
     */
    public static $messageCategory = 'app';

    /**
     * @var array
     */
    public static $list = [
        self::PENDING => 'Pending',
        self::APPROVED => 'Approved',
        self::REJECTED => 'Rejected',
        self::POSTPONED => 'Postponed',
    ];
}

Enum creation

$status = new PostStatus(PostStatus::PENDING);

// or you can use the magic methods

$status = PostStatus::PENDING();

Static methods

PostStatus::getConstantsByValue() // ['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED']
PostStatus::getConstantsByName() // ['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3]
PostStatus::isValidName(1) // false
PostStatus::isValidName('APPROVED') // true
PostStatus::isValidValue(1) // true
PostStatus::isValidValue('Approved') // false
PostStatus::listData() // ['Pending', 'Approved', 'Rejected', 'Postponed']
PostStatus::getLabel(1) // Approved
PostStatus::getValueByName('Approved') // 1

Type-Hint and Validation Rules

<?php

use models\enums\PostStatus;
use yii\db\ActiveRecord;

class CommentModel extends ActiveRecord
{
    public function rules()
    {
        return [
            ['status', 'default', 'value' => PostStatus::APPROVED],
            ['status', 'in', 'range' => PostStatus::getConstantsByName()],
        ];
    }

    public function setStatus(PostStatus $status)
    {
        $this->status = $status->getValue();
    }

    public function getStatus()
    {
        return $this->status;
    }
}

The Versions

11/09 2017

dev-master

9999999-dev

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 enum enumerable helper

20/04 2017

1.7.1

1.7.1.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

by Igor Chepurnoi

yii2 yii2 enum enumerable helper

09/01 2017

1.7

1.7.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

yii2 yii2 enum enumerable helper

12/12 2016

1.6.1

1.6.1.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

yii2 yii2 enum enumerable helper

22/11 2016

1.6

1.6.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

yii2 yii2 enum enumerable helper

22/11 2016

1.5

1.5.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

The Development Requires

yii2 yii2 enum enumerable helper

06/08 2016

1.4

1.4.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

extension yii2

04/07 2016

1.3

1.3.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

extension yii2

16/06 2016

1.2

1.2.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

The Requires

 

extension yii2

23/09 2015

1.1

1.1.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

extension yii2

17/06 2015

1.0

1.0.0.0

Yii2 Enumerable helpers

  Sources   Download

MIT

extension yii2