https://github.com/miladrahimi/php-enum
A PHP abstract enum class
https://github.com/miladrahimi/php-enum
enum package php
Last synced: 6 months ago
JSON representation
A PHP abstract enum class
- Host: GitHub
- URL: https://github.com/miladrahimi/php-enum
- Owner: miladrahimi
- License: mit
- Created: 2018-09-09T21:39:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-08-10T06:39:32.000Z (almost 4 years ago)
- Last Synced: 2025-11-14T05:19:53.426Z (8 months ago)
- Topics: enum, package, php
- Language: PHP
- Homepage:
- Size: 17.6 KB
- Stars: 11
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://packagist.org/packages/miladrahimi/php-enum)
[](https://packagist.org/packages/miladrahimi/php-enum)
[](https://travis-ci.org/miladrahimi/php-enum)
[](https://coveralls.io/github/miladrahimi/php-enum?branch=master)
[](https://packagist.org/packages/miladrahimi/php-enum)
# PHP-Enum
To make your Enums feel alive, just make them extend `Enum` abstract class!
## Installation
Install [Composer](https://getcomposer.org) and run following command in your project's root directory:
```
composer require miladrahimi/php-enum "1.*"
```
## Documentation
Consider this enum class:
```php
namespace MiladRahimi\Enum\Enum;
class SampleEnum extends Enum
{
const UNO = 1;
const ONE = 1;
const TWO = 2;
const STR = "sth";
}
```
Now you are able to use this methods:
```php
SampleEnum::all(); // ['UNO' => 1, 'ONE' => 1, 'TWO' => 2, 'STR' => 'sth']
SampleEnum::keys(); // ['UNO', 'ONE', 'TWO', 'STR'];
SampleEnum::values(); // [1, 1, 2, 'sth']
SampleEnum::hasKey('ONE'); // true
SampleEnum::hasKey('xXx'); // false
SampleEnum::hasValue(2); // true
SampleEnum::hasValue('xXx'); // false
SampleEnum::valueOf('ONE'); // 1
SampleEnum::keysOf(1); // ['UNO', 'ONE']
SampleEnum::keyOf(1); // 'UNO'
SampleEnum::randomKey(); // One of 'UNO', 'ONE', 'TWO', 'STR'
SampleEnum::randomKeyExceptKeys(['ONE', 'TWO']); // One of 'UNO', 'STR'
SampleEnum::randomKeyExceptValues([SampleEnum::STR, SampleEnum::TWO]); // One of 'ONE', 'UNO'
SampleEnum::randomValue(); // One of 1, 2, 'sth'
SampleEnum::randomValueExceptValues([SampleEnum::STR, SampleEnum::TWO]); // One of SampleEnum::ONE, SampleEnum::UNO
SampleEnum::randomValueExceptKeys(['STR', 'TWO']); // One of SampleEnum::ONE, SampleEnum::UNO
```
## License
PHP-Enum is initially created by [Milad Rahimi](https://miladrahimi.com)
and released under the [MIT License](http://opensource.org/licenses/mit-license.php).