Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yii2mod/yii2-enum
Enumerable helper
https://github.com/yii2mod/yii2-enum
yii2 yii2-enum yii2-enumerable-helper yii2-enumeration yii2-extension
Last synced: 3 days ago
JSON representation
Enumerable helper
- Host: GitHub
- URL: https://github.com/yii2mod/yii2-enum
- Owner: yii2mod
- License: mit
- Created: 2014-09-01T12:15:20.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-11-02T17:52:13.000Z (about 5 years ago)
- Last Synced: 2024-11-06T08:45:50.629Z (10 days ago)
- Topics: yii2, yii2-enum, yii2-enumerable-helper, yii2-enumeration, yii2-extension
- Language: PHP
- Homepage:
- Size: 28.3 KB
- Stars: 63
- Watchers: 5
- Forks: 15
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Enum Extension for Yii2
Enum implementation for Yii Framework 2.0
[![Latest Stable Version](https://poser.pugx.org/yii2mod/yii2-enum/v/stable)](https://packagist.org/packages/yii2mod/yii2-enum) [![Total Downloads](https://poser.pugx.org/yii2mod/yii2-enum/downloads)](https://packagist.org/packages/yii2mod/yii2-enum) [![License](https://poser.pugx.org/yii2mod/yii2-enum/license)](https://packagist.org/packages/yii2mod/yii2-enum)
[![Build Status](https://travis-ci.org/yii2mod/yii2-enum.svg?branch=master)](https://travis-ci.org/yii2mod/yii2-enum)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/yii2mod/yii2-enum/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/yii2mod/yii2-enum/?branch=master)## Support us
Does your business depend on our contributions? Reach out and support us on [Patreon](https://www.patreon.com/yii2mod).
All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.Installation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
php composer.phar require --prefer-dist yii2mod/yii2-enum "*"
```or add
```
"yii2mod/yii2-enum": "*"
```to the require section of your `composer.json` file.
## 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
'Pending',
self::APPROVED => 'Approved',
self::REJECTED => 'Rejected',
self::POSTPONED => 'Postponed',
];
}
```
## Enum creation
```php
$status = new PostStatus(PostStatus::PENDING);// or you can use the magic methods
$status = PostStatus::PENDING();
```## Static methods
```php
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
PostStatus::APPROVED],
['status', 'in', 'range' => PostStatus::getConstantsByName()],
];
}public function setStatus(PostStatus $status)
{
$this->status = $status->getValue();
}public function getStatus()
{
return $this->status;
}
}
```