勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPのバリエーションライブラリ「Valitron」の導入及び利用方法

  PHP

フォーム等の入力内容チェックをPHP側で行う際、現状は素のPHPで書いているけどこれが面倒くさい。お手軽に導入できて学習コストも少なそうなライブラリを探したところValitronがcomposer無しでも導入でき、割とシンプルっぽいので良さそう。以下に導入及び利用方法をメモ。

 

Valitron

公式サイト

https://github.com/vlucas/valitron

 

インストール

composerを利用する場合

サーバにSSH接続し以下コマンドでインストールする。

composer require vlucas/valitron

composerを利用しない場合

公式ページからファイル一式をzipでダウンロードし展開する。「src」「lang」ディレクトリを丸ごと適当なディレクトリにアップロードする。尚、今回はこちらの方法で導入した。

尚、ディレクトリ構成は以下のような形。

root/
 ├lang/
 ├src/
 └index.php

 

利用方法

基本的な使い方

基本的には以下のような使い方になる。ルール名については公式ページを参照すること。

//1つのフィールドにルールを適用する場合
$検証->rule('ルール名', 'フィールド名');

//2つ以上のフィールドにルールを適用する場合
$検証->rule('ルール名', ['フィールド名1', 'フィールド名2', ...]);

サンプル

<?php
require_once './src/Valitron/Validator.php';

$data = array(
    'name' => '鈴木鈴木鈴木鈴木鈴木鈴木',
    'mail' => 'testtest.com',
);

//日本語化
Valitron\Validator::lang('ja');

//インスタンスを生成
$validation = new Valitron\Validator($data);

//項目名を設定
$validation->labels([
    'name' => '名前',
    'mail' => 'メールアドレス'
]);

//バリデーションルール
$validation->rule('required', ['name', 'mail'])->message('{field}は必須項目です。');
$validation->rule('lengthMax', ['name', 'kana'], 10)->message('入力可能な文字数は10字までです。');
$validation->rule('email', 'mail')->message('正しいメールアドレス形式で入力してください。');

//エラー内容の出力
if( !$validation->validate() ){
    var_dump($validation->errors());
}

上記を実行すると以下がvar_dumpで出力される筈。

array(2) {
  ["name"]=>
  array(1) {
    [0]=>
    string(47) "入力可能な文字数は10字までです。"
  }
  ["mail"]=>
  array(1) {
    [0]=>
    string(66) "正しいメールアドレス形式で入力してください。"
  }
}

 

参考サイト

https://oopsoop.com/form-validation-with-valitron/

https://qiita.com/e__ri/items/2049ddeafc0c92cb8254

https://tech.arms-soft.co.jp/entry/2019/10/30/090000

 - PHP

  関連記事

HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)

HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...

PHPでダミー画像(プレースホルダー画像)を表示する「PHP-Dummy-Image-Generator」の利用方法

先日JavaScriptでダミー画像(プレースホルダー画像)を表示する「Hold ...

PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法

PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...

PHPにて「hashids(Sqids)」ライブラリで数値からユニークなランダム英数字のIDに変換する方法

PHPにてユーザID等を推測されないよう数値のIDからユニークなランダム英数字の ...

PHPでシンプルな英数字のCAPTCHAを「Gregwar / Captcha」ライブラリで実装する方法

PHPでシンプルなランダム英数字のCAPTCHAを実装したい。「Gregwar ...