Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tekvn/php-enum
Enum utility for you.
https://github.com/tekvn/php-enum
Last synced: about 2 months ago
JSON representation
Enum utility for you.
- Host: GitHub
- URL: https://github.com/tekvn/php-enum
- Owner: TekVN
- License: mit
- Created: 2024-04-21T15:27:36.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-08-07T04:00:43.000Z (5 months ago)
- Last Synced: 2024-10-07T07:42:30.913Z (3 months ago)
- Language: PHP
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Welcome to PHPEnum - Dạo này bạn quẩy enum ra sao?
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?
Cài đặt PHPEnum cực kỳ đơn giản, chỉ cần sử dụng Composer:
```bash
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
```php
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
#### 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
```php
Status::toArray();// Kết quả:
[
'SUSPEND' => 0,
'ACTIVE' => 1
];
```#### 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```php
Status::toJson();// Kết quả:
'{
"SUSPEND": 0,
"ACTIVE": 1
}';
```#### 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ề```php
Status::getValue('SUSPEND');
// Hoặc
Status::getValue(Status::SUSPEND);
// Kết quả: 0
``````php
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
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.
```php
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
#### 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
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 hoaVD: userActive, userSuspend
### Đó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
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