项目作者: yinfuyuan

项目描述 :
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.
高级语言: PHP
项目地址: git://github.com/yinfuyuan/php-enum.git
创建时间: 2020-05-18T16:25:56Z
项目社区:https://github.com/yinfuyuan/php-enum

开源协议:GNU General Public License v3.0

下载


PHP Enum

Latest Version on Packagist
License
Postcardware

PHP from Packagist
Build Status
Total Downloads

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. PHPEnum runs in most PHP applications.

Installation

  1. composer require phpenum/phpenum

Getting Started

Using PhpEnum is very similar to using Java Enum, For example, define an enumeration representing gender.

In Java:

  1. public enum GenderEnum {
  2. MALE(1, "male"),
  3. FEMALE(2, "female");
  4. private Integer id;
  5. private String name;
  6. GenderEnum(Integer id, String name) {
  7. this.id = id;
  8. this.name = name;
  9. }
  10. public Integer getId() {
  11. return id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. }

In PHP:

  1. class GenderEnum extends \PhpEnum\Enum
  2. {
  3. const MALE = [1, 'male'];
  4. const FEMALE = [2, 'female'];
  5. private $id;
  6. private $name;
  7. protected function construct($id, $name)
  8. {
  9. $this->id = $id;
  10. $this->name = $name;
  11. }
  12. public function getId()
  13. {
  14. return $this->id;
  15. }
  16. public function getName()
  17. {
  18. return $this->name;
  19. }
  20. }

You’ll also find a lot of similarities when using enumerations

In Java:

  1. GenderEnum.values(); // enum instance array
  2. GenderEnum.valueOf("FEMALE"); // enum instance
  3. GenderEnum.MALE.equals(GenderEnum.valueOf("MALE")); // true
  4. GenderEnum.MALE.name(); // MALE
  5. GenderEnum.MALE.ordinal(); // 0
  6. GenderEnum.MALE.toString(); // MALE
  7. GenderEnum.MALE.getId(); // 1
  8. GenderEnum.MALE.getName(); // male

In PHP:

  1. GenderEnum::values(); // enum instance array
  2. GenderEnum::valueOf('FEMALE'); // enum instance
  3. GenderEnum::MALE()->equals(GenderEnum::valueOf('MALE')); // true
  4. GenderEnum::MALE()->name(); // MALE
  5. GenderEnum::MALE()->ordinal(); // 0
  6. (string)GenderEnum::MALE(); // MALE
  7. GenderEnum::MALE()->getId(); // 1
  8. GenderEnum::MALE()->getName(); // male

Not only that, PhpEnum also provides advanced functionality in subclasses

  1. GenderEnum::MALE()->idEquals(1); // true
  2. GenderEnum::MALE()->NameEquals('male'); // true
  3. GenderEnum::containsId(1); // 1
  4. GenderEnum::containsName('male'); // 1
  5. GenderEnum::ofId(1); // enum instance
  6. GenderEnum::ofName('male'); // enum instance

Documentation

PhpEnum supports PHP version 5.6+. The documentation for PHPEnum is available on the Github wiki.

License

The PHPEnum is open-sourced software licensed under the GPL-3.0 license.