Enum
Adalah penyedia dan pembuat object enum. Library ini biasanya digunakan pada form, dan formatter.
Instalasi
Jalankan perintah di bawah di folder aplikasi:
mim app install lib-enum
Konfigurasi
Semua enum disimpan di konfigurasi aplikasi/module dengan bentuk seperti di bawah:
return [
// ...
'libEnum' => [
'enums' => [
'/enum-name/' => [
'/enum-value/' => '/enum-label/',
// ...
]
]
],
// ...
];
Penggunaan
Module ini membuat library LibEnum\Library\Enum
yang bisa digunakan
untuk membentuk object enum dengan cara seperti di bawah:
use LibEnum\Library\Enum;
$enum = new Enum('enum-name', 'current-value');
echo $enum->value; // 'current-value'
echo $enum->label; // 'enum-label'
echo $enum; // 'enum-label';
echo json_encode($enum); // {"value": "current-value", "label": "enum-label"}
$options = $enum->options;
Untuk mendapatkan options suatu object, bisa juga menggunakan static method
dari class di atas dengan method getOptions(string $name)
Formatter
Jika module lib-formatter
terpasang, module ini menambah dua format type,
yaitu:
enum
Mengubah nilai menjadi object enum.
'field' => [
'type' => 'enum',
'enum' => 'enum-name',
'vtype' => 'int' // optional
]
multiple-enum
Mengubah nilai menjadi beberapa object enum.
'field' => [
'type' => 'multiple-enum',
'separator' => ',', // json
'enum' => 'enum-name',
'vtype' => 'str' // optional
]
Properti vtype
diatas memastikan type value
akan dikonversi menjadi type
yang disebutkan. Nilai yang diterima adalah int
dan str
.
Nilai separator juga bisa menerima nilai json
untuk menggunakan fungsi json_decode
sebagai pemisah nilai. Selain itu, fungsi explode
akan digunakan.
Validator
Jika module lib-validator
terpasang, maka module ini mendaftarkan tipe validasi seperti di bawah:
enum
// ...
'field' => [
'rules' => [
'required' => true,
'enum' => 'enum-key'
]
]
// ...
Memastikan nilai yang dikirimkan oleh user adalah salah satu dari yang di daftarkan pada suatu enum.