PHPackages                             tekvn/php-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. tekvn/php-enum

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tekvn/php-enum
==============

Enum utility for you.

1.2.0(1y ago)11.7k11MITPHPPHP ^8.1CI passing

Since Jun 11Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/TekVN/php-enum)[ Packagist](https://packagist.org/packages/tekvn/php-enum)[ RSS](/packages/tekvn-php-enum/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (1)

Welcome to PHPEnum - Dạo này bạn quẩy enum ra sao?
==================================================

[](#welcome-to-phpenum---dạo-này-bạn-quẩy-enum-ra-sao)

[![Build Status](https://github.com/tekvn/php-enum/actions/workflows/test.yml/badge.svg)](https://github.com/tekvn/php-enum/actions)[![Total Downloads](https://camo.githubusercontent.com/bd122d812975942852fc457235d34030b9aa3b4248ad9f934527de15d39f9544/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f74656b766e2f7068702d656e756d)](https://packagist.org/packages/tekvn/php-enum)[![Latest Stable Version](https://camo.githubusercontent.com/8d90bceb6caa642f426f87fc65785777f29cda93c8f97e05efd524e771ffb0d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f74656b766e2f7068702d656e756d)](https://packagist.org/packages/tekvn/php-enum)[![License](https://camo.githubusercontent.com/5a12ae699be8a1a755f9b9bcf674fc16f9b4ce3758e8ed4f55d39875e643e188/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f74656b766e2f7068702d656e756d)](https://packagist.org/packages/tekvn/php-enum)

Bạn đã bao giờ phải xử lý enum trong PHP và cảm thấy mệt mỏi với sự lộn xộn và phiền toái chưa? Đừng lo lắng nữa vì PHPEnum đã sẵn sàng giúp bạn thổi bay những lo lắng!

Tôi dự định sẽ thay thế enum bằng class như các package khác nhưng tôi cho rằng performance không tốt bằng enum native nên package này đã ra đời. LOL =)))

### Làm thế nào để cài đặt?

[](#làm-thế-nào-để-cài-đặt)

Cài đặt PHPEnum cực kỳ đơn giản, chỉ cần sử dụng Composer:

```
composer require tekvn/php-enum
```

Tại file enum của bạn, hãy use trait `TekVN\Enum\EnumUtilities` và... well mọi thứ đã sẵn sàng

```
use TekVN\Enum\EnumUtilities;

enum Status: int {
    // Thêm trait này
    use EnumUtilities;

    case SUSPEND = 0;
    case ACTIVE = 1;
    // ...
}
```

### Cách sử dụng

[](#cách-sử-dụng)

#### toArray

[](#toarray)

Phương thức này trả về một mảng với key là name enum và value là value enum. Hơi rối nhỉ? Cùng xem mẫu dưới đây

```
Status::toArray();

// Kết quả:
[
    'SUSPEND' => 0,
    'ACTIVE' => 1
];
```

#### toJson

[](#tojson)

Phương thức toJson trả về 1 json\_encode của phương thức toArray. Bạn cũng có thể truyền thêm các flag vào nếu như không muốn sử dụng các flag mặc định

```
Status::toJson();

// Kết quả:
'{
    "SUSPEND": 0,
    "ACTIVE": 1
}';
```

#### getValue

[](#getvalue)

Phương thức cho phép lấy giá trị của enum với input có thể là string(enum name), enum. Nếu không tìm thấy enum null sẽ được trả về

```
Status::getValue('SUSPEND');
// Hoặc
Status::getValue(Status::SUSPEND);
// Kết quả: 0
```

```
Status::getValue('NOT_EXISTS');
// Kết quả: null
```

*Lưu ý: Tham số thứ hai cho biết nếu null thì có throw exception hay không. Mặc định là false*

#### Like a function

[](#like-a-function)

Chúng ta cũng có thể lấy 1 instance enum theo cách gọi hàm =))). Tên hàm được chuyển về dạng UPPER\_CASE.

```
Status::suspend();
Status::active();
```

Dễ dàng chứ? Hãy để PHPEnum giúp bạn giải quyết mọi thách thức với enum trong PHP một cách ngầu hết sức!

### Conventions

[](#conventions)

#### Quy tắc đặt tên case

[](#quy-tắc-đặt-tên-case)

- Viết hoa tất cả chữ cái
- Các chữ phân cách bởi dấu `_`

VD: USER\_ACTIVE, USER\_SUSPEND, ...

#### Quy tắc đặt tên hàm

[](#quy-tắc-đặt-tên-hàm)

Các tên hàm được đặt theo qui tắc camelCase

- Viết thường chữ đầu
- Các chữ phân cách nhau bằng chữ in hoa

VD: userActive, userSuspend

### Đóng góp

[](#đóng-góp)

Nếu bạn cảm thấy rằng PHPEnum có thể trở nên ngầu hơn nữa, hãy đóng góp các ý tưởng của bạn. Chúng tôi luôn chào đón.

### Donate

[](#donate)

Tôi rất vui nếu bạn donate. Đó sẽ là nguồn động lực to lớn giúp tôi có thể tạo ra những điều thú vị hơn nữa. Cảm ơn rất rất nhiều

[![Donate QR Mono](https://raw.githubusercontent.com/ducconit/ducconit/master/assets/qr/mono.jpg)](https://raw.githubusercontent.com/ducconit/ducconit/master/assets/qr/mono.jpg)

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance48

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.3% of commits — single point of failure

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

Every ~28 days

Total

3

Last Release

649d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d8d33c5b1d73338129cdfbbc731c6b68851684761bf03b9118a798bf6aa40cd1?d=identicon)[ducconit](/maintainers/ducconit)

---

Top Contributors

[![ducconit](https://avatars.githubusercontent.com/u/72369814?v=4)](https://github.com/ducconit "ducconit (13 commits)")[![hoangkhacphuc](https://avatars.githubusercontent.com/u/63985216?v=4)](https://github.com/hoangkhacphuc "hoangkhacphuc (3 commits)")

---

Tags

phpenumTekVN

###  Code Quality

TestsPest

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[kongulov/interact-with-enum

Trait for convenient use of ENUM in PHP

3052.3k2](/packages/kongulov-interact-with-enum)[iteks/laravel-enum

A comprehensive Laravel package providing enhanced enum functionalities, including attribute handling, select array conversions, and fluent facade interactions for robust enum management in Laravel applications.

2516.7k](/packages/iteks-laravel-enum)[vjik/php-enum

PHP Enum Implementation

209.9k](/packages/vjik-php-enum)[ducks-project/spl-types

Polyfill Module for SplType PHP extension. This extension aims at helping people making PHP a stronger typed language and can be a good alternative to scalar type hinting. It provides different typehandling classes as such as integer, float, bool, enum and string

1032.4k](/packages/ducks-project-spl-types)

PHPackages © 2026

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