https://github.com/yinfuyuan/php-enum
PHPEnum is an enumeration class library for PHP developers. The idea comes from Java enumeration, and using the PHP features to implement single-value enumeration and multi-value enumeration.
https://github.com/yinfuyuan/php-enum
enum enumeration php-enum
Last synced: 10 months ago
JSON representation
PHPEnum is an enumeration class library for PHP developers. The idea comes from Java enumeration, and using the PHP features to implement single-value enumeration and multi-value enumeration.
- Host: GitHub
- URL: https://github.com/yinfuyuan/php-enum
- Owner: yinfuyuan
- License: gpl-3.0
- Created: 2020-05-18T16:25:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-18T08:39:51.000Z (almost 5 years ago)
- Last Synced: 2024-05-20T20:04:07.973Z (over 1 year ago)
- Topics: enum, enumeration, php-enum
- Language: PHP
- Homepage:
- Size: 85 KB
- Stars: 70
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# PHP Enum
[](https://packagist.org/packages/phpenum/phpenum)
[](https://github.com/yinfuyuan/php-enum/blob/master/LICENSE)

[](https://packagist.org/packages/phpenum/phpenum)
[](https://github.com/yinfuyuan/php-enum/actions?query=workflow%3Atests)
[](https://packagist.org/packages/phpenum/phpenum)
PHPEnum is an enumeration class library for PHP developers. The idea comes from [Java enumeration](https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html), and using the PHP features to implement single-value enumeration and multi-value enumeration. PHPEnum runs in most PHP applications.
### Installation
composer require phpenum/phpenum
### Getting Started
Using PhpEnum is very similar to using Java Enum, For example, define an enumeration representing gender.
In Java:
public enum GenderEnum {
MALE(1, "male"),
FEMALE(2, "female");
private Integer id;
private String name;
GenderEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public String getName() {
return name;
}
}
In PHP:
class GenderEnum extends \PhpEnum\Enum
{
const MALE = [1, 'male'];
const FEMALE = [2, 'female'];
private $id;
private $name;
protected function construct($id, $name)
{
$this->id = $id;
$this->name = $name;
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
}
You'll also find a lot of similarities when using enumerations
In Java:
GenderEnum.values(); // enum instance array
GenderEnum.valueOf("FEMALE"); // enum instance
GenderEnum.MALE.equals(GenderEnum.valueOf("MALE")); // true
GenderEnum.MALE.name(); // MALE
GenderEnum.MALE.ordinal(); // 0
GenderEnum.MALE.toString(); // MALE
GenderEnum.MALE.getId(); // 1
GenderEnum.MALE.getName(); // male
In PHP:
GenderEnum::values(); // enum instance array
GenderEnum::valueOf('FEMALE'); // enum instance
GenderEnum::MALE()->equals(GenderEnum::valueOf('MALE')); // true
GenderEnum::MALE()->name(); // MALE
GenderEnum::MALE()->ordinal(); // 0
(string)GenderEnum::MALE(); // MALE
GenderEnum::MALE()->getId(); // 1
GenderEnum::MALE()->getName(); // male
Not only that, PhpEnum also provides advanced functionality in subclasses
GenderEnum::MALE()->idEquals(1); // true
GenderEnum::MALE()->NameEquals('male'); // true
GenderEnum::containsId(1); // 1
GenderEnum::containsName('male'); // 1
GenderEnum::ofId(1); // enum instance
GenderEnum::ofName('male'); // enum instance
### Documentation
PhpEnum supports PHP version 5.6+. The documentation for PHPEnum is available on the [Github wiki](https://github.com/yinfuyuan/php-enum/wiki).
### License
The PHPEnum is open-sourced software licensed under the [GPL-3.0 license](https://github.com/yinfuyuan/php-enum/blob/master/LICENSE).