PHPackages                             bohacpetr/enum - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. bohacpetr/enum

ActiveLibrary

bohacpetr/enum
==============

v1.0.0(5y ago)0233BSD-1-ClausePHPPHP &gt;=7.1CI failing

Since Jul 17Pushed 5y ago1 watchersCompare

[ Source](https://github.com/bohacpetr/Enum)[ Packagist](https://packagist.org/packages/bohacpetr/enum)[ RSS](/packages/bohacpetr-enum/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Enum
====

[](#enum)

```
use bohyn\Enum\Enum;

// To create new enum, you just have to define constants
class MyEnum extends Enum {

  public const STATUS_NEW = 1;
  public const STATUS_ACTIVE = 2;
  public const STATUS_INACTIVE = 3;
  public const STATUS_DELETED = 4;
}

MyEnum::getValidValues(); // [1, 2, 3, 4]

$myEnum = new MyEnum(5); // throws bohyn\Enum\EnumException
$myEnum = new MyEnum(MyEnum::STATUS_ACTIVE);

// returns enum value
$myEnum->get(); // 1

// comparisons can be by value or by instance
$myEnum->equals(1); // true
$myEnum->equals(2); // false
$myEnum->equals(new MyEnum(MyEnum::STATUS_DELETED)); // false

// Check if enum value is one of values in array
$myEnum->equalsAny([1, 2]); // true
$myEnum->equalsAny([2, 3, 4]); // false

(string)$myEnum; // 1

MyEnum::isValid(1); // true
MyEnum::isValid(5); // false
```

MultiEnum
=========

[](#multienum)

```
use bohyn\Enum\MultiEnum;

class MyMultiEnum extends MultiEnum {

    public const COLOR_BLUE = 1;
    public const COLOR_RED = 2;
    public const COLOR_GREEN = 3;
    public const COLOR_BLACK = 4;
}

$myEnum = new MyMultiEnum([MyMultiEnum::COLOR_BLUE, MyMultiEnum::COLOR_RED]);

$myEnum->get(); // [1, 2]

$myEnum->equals([1, 2]); // true
$myEnum->equals(new MyMultiEnum([MyMultiEnum::COLOR_BLUE, MyMultiEnum::COLOR_RED])); // true
$myEnum->equals([1, 3]); // false
$myEnum->equals([1]); // false

$myEnum->matchAny([1, 2, 3]); // true
$myEnum->matchAny([1]); // true
$myEnum->matchAny([3]); // false

(string)$myEnum; // 1,2

MyMultiEnum::isValid([3, 4]); // true
MyMultiEnum::isValid(2); // true
MyMultiEnum::isValid(5); // false
MyMultiEnum::isValid([4, 5]); // false
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2130d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/24fb7c4a91fec2b78834106fecf5f700c7e86d29a1468631d885e3deb368acd8?d=identicon)[bohacpetr](/maintainers/bohacpetr)

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/bohacpetr-enum/health.svg)

```
[![Health](https://phpackages.com/badges/bohacpetr-enum/health.svg)](https://phpackages.com/packages/bohacpetr-enum)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
