メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
basic-library:valitron:1.4バリデーター - Valitron
Version 1.4 (BSD 3-Clause License)
— y2sunlight 2020-04-18
関連記事
- バリデーター - Valitron
リンク
- https://github.com/vlucas/valitron — Valitron の本家
テストプログラムの所在
{Project Folder}\test\valitron\
Valitron について
Webアプリケーションの世界では HTML5やjqueryによるクライアントサイドのバリデーション環境が強力になったきたとは言え、はやりサーバーサイドのバリデーションはデータの正確性と完全性を保つ上で必要不可欠な存在(最後の砦)です。バリデーションをPHP言語に標準装備されている関数群だけで自力作成することも難しくはありませんが、やはり必要最低限のものはライブラリとして揃えておきたいものです。
但し、バリデーターが機能を重視する余りに他のパッケージと依存関係の為に付随する大量の追加ファイルを取り込むことは避けたいと思います(これは本編のApricotの思想に反します)。そこで、いろいろ探したところ、Apricotの思いにピッタリのものを見つけました。それが
Valitron
です。Valitronはとてもシンプルなバリデーターライブラリで、他のパッケージなどとの依存関係もありません。また、その作者がApricotの環境変数ライブラリとして使っているphpdotenvの作者と同じVance Lucas氏であったことも選定理由の1つになりました。実際に使った見ると、本当にシンプルで使いやすく、バリデーションのカスタムルールームも簡単に追加でき、Apricotにとっては将に「水魚の交わり」と言ったところでしょうか。Lucas氏に感謝です。インストール
composer require vlucas/valitron
Using version ^1.4 for vlucas/valitron ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing vlucas/valitron (v1.4.7): Loading from cache Writing lock file Generating autoload files 1 package you are using is looking for funding. Use the `composer fund` command to find out more!
Note:
Eclipse起動中にパッケージを取得した場合は、プロジェクト・エクスプローラー内の[プロジェクト(apricote)]を右クリックして[リフレッシュ]を選択して下さい。また、新しく取得したパッケージのインテリセンスが有効にならない場合は、プロジェクトのビルトまたはクリーン&ビルドを行ってビルドリストの更新を行って下さい。パッケージの取得が終わると
composer.json
のrequire
に以下が追加されます。- composer.json
{ "require": { "vlucas/valitron": "^1.4" } }
テストプログラム
パッケージのテストフォルダ(test\)に、テスト用のコード(valitron.php)を作成します。この例はgithubに記載されているものと同等です。フォームからPostされてくる
name
と言う名前のデータにrequired
(必須)という名のルールを適用しています。バリデーションのルールをrule()で設定した後は、validate()で検証して、結果がfalseならエラー内容をerrors()で取り出します。- valitron.php
<?php require __DIR__.'/../vendor/autoload.php'; $v = new Valitron\Validator(array('name' => 'Chester Tester')); $v->rule('required', 'name'); if($v->validate()) { echo "Yay! We're all good!"; } else { // Errors print_r($v->errors()); }
実行結果(成功の場合)
Yay! We're all good!
実行結果(失敗の場合)
Array ( [name] => Array ( [0] => Name is required ) )
エラーの場合のメッセージは言語毎に設定できるように配慮されており、バリデーションルールの追加も簡単に出来るようになっています。仔細はのgithubをご覧下さい。尚、お分かりとは思いますが、実際には上例のValidatorをnewする際は以下のようになります。
$v = new Valitron\Validator($_POST);
basic-library/valitron/1.4.txt · 最終更新: 2020/07/13 09:51 by y2sunlight
コメント