Developer di beri kebebasan untuk membuat rule mereka sendiri. Untuk membuat custom rule, pastikan mendaftarkan pada konfigurasi module seperti di bawah:

return [
    // ...
    'libValidator' => [
        'validators' => [
            'ifirst' => 'MyRule\\Rules\\Custom::ifirst'
        ]
    ]
    // ...
];

Kemudian buatkan class dengan static method untuk validator ini:

namespace MyRule\Rules;

class Custom{
    static function ifirst($value, $options, $object, $field, $rules): ?array{
        if(substr($value, 0, 1) === 'i')
            return null;
        return ['20.0'];
    }
}

Parameter yang digunakan saat memanggil fungsi ini adalah:

  1. $value Nilai yang perlu di validasi
  2. $options Nilai rule options pada kofigurasi, pada contoh di bawah, nilai ini menjadi true.
  3. $object Object dimana nilai ini diambil.
  4. $field Nama $object properti darimana nilai diambil.
  5. $rules Daftar semua rules yang juga di test pada nilai ini.

Contoh penggunaan pada aplikasi adalah sebagai berikut:

$rules = [
    'name' => [
        'rules' => [
            'ifirst' => true
        ]
    ]
];