php初心者の頃はよくわからなかったけど使っていくうちに使いやすさに惚れたバリデーションライブラリです。
##環境
・PHP 7.3.18
・composerインストール済み
##導入
composerを用いてインストールします。
(公式github:https://github.com/vlucas/valitron#installation)
php composer.phar require vlucas/valitron
##実装
・入力フォーム等でPOST送信がされた際に以下実行
・$_POST送信で送られてきたname属性を指定します。
$v = new \Valitron\Validator($_POST);
//'required'で入力必須項目を指定、message()にてエラー時の出力文字を指定します
$v->rule('required', ['name', 'nameKana', 'phoneNumber', 'emailAddress'])->message('※{field}が未入力です。');
$v->rule('required', 'agreement')->message('※{field}の同意にチェックを入れてください。');
$v->rule('required', 'gender')->message('※{field}を選択してください。');
//上記'required'部分をemailにすることでメールアドレスの指定も可能
$v->rule('email', 'emailAddress')->message('※{field}を正しく入力してください。');
//'regex'で数字を指定
$v->rule("regex", "phoneNumber", "/\A0[0-9]{9,10}\z/")->message('※{field}を正しく入力してください。');
//validationエラー時、上記で指定したname属性部分を予め日本語にしておけば日本語で出力されます。
$v->labels([
'name' => 'お名前',
'nameKana' => 'フリガナ',
'emailAddress' => 'メールアドレス',
'gender' => '性別',
'phoneNumber' => '電話番号',
'agreement' => '個人情報保護方針'
]);
//上記続き
if ($v->validate()) {
//バリデーションOK時の挙動(送信確定画面に遷移等)
}else{
$errors = $v->errors();
//バリデーションNG時の挙動(再入力画面に遷移等)
}
validationエラー時、$errorsは配列で返ってくるのでhtml側でforeachで回して表示します。