1 Giới thiệu Enum
Enum
là một kiểu dữ liệu đặc biệt, thường sử dụng cho việc định nghĩa một tập hợp cho các hằng số có giá trị cố định.
Ví dụ như:
– Các ngày trong tuần (Monday, Tuesday, … Sunday)
– Giới tính (Man, Woman, Other)
– Các mùa trong năm (Spring, Summer, Autumn, Winter)
– ….
Lợi ích của Enum:
– Giảm các lỗi gây ra bởi chuyển đổi số hoặc nhập sai số.
– Thuận lợi cho việc quản lý, dễ dàng thay đổi các giá trị trong tương lai.
– Làm cho code tường minh hơn, dễ đọc hơn, giảm việc xuất hiện bug. 😄
…..
2 PHP Enum
Để có thể sử dụng enum trên php thì sẽ cài đặt thư viện myclabs/php-enum
Câu lệnh: composer require myclabs/php-enum
Để dễ quản lý thì nên tạo 1 folder Enums lưu trữ các file Enum đã viết
2.1 Cách viết
<?php namespace App\Enums; use MyCLabs\Enum\Enum; // thư viện sử dụng để có thể định nghĩa các biến Enum /** * Action enum * * @extends Enum<Action::*> */ class Action extends Enum { const VIEW = 'view'; // biến const EDIT = 'edit'; // biến } // Đây là ví dụ 1 class sử dụng Enum
2.2 Cách sử dụng các biến Enum và 1 số hàm
Để sử dụng các biến Enum thì chỉ cần use class chứa biến Enum muốn dùng. Sau đó khi cần gọi biến sẽ sử dụng:
<tên class>::<tên biến>
Ví dụ: để sử dụng biến VIEW đã khai báo ở class Action thì sẽ viết như sau: Action::View (lưu ý là sẽ phải gọi đến class Action trước “use App/Enums/Action;”).
Enum còn cung cấp 1 số hàm để có thể lấy các biến, kiểm trả tồn tại, … 1 số hàm có thể kể đến như
– isValid($value): kiểm tra $value có tồn tại giá trị hay ko. Cú pháp <tên class>::isValid($value).
– isValidKey($key): kiểm tra $key có tồn tại tên biến hay ko. Cú pháp <tên class>::isValidKey($key).
….
Mọi hàm thì có thể xem tại link: https://github.com/myclabs/php-enum
Ngoài ra thì có thể tự tạo ra 1 số hàm để sử dụng ví dụ như sau:
public static function collect(): Collection
{
return collect(self::values());
}
// hàm trên sẽ trả về các 1 Collection toàn bộ các biến Enum trong 1 class