簡體   English   中英

如何向Respect的驗證庫添加自定義驗證器

[英]How can I add a custom Validator to Respect's Validation library

令人敬畏的Respect Validation庫帶有許多內置驗證器,如string(),alpha()等等。 我想在庫中添加自定義驗證器,例如,我希望能夠這樣做:

Validator::myCustomValidator()->assert( $input );

我剛剛發現它並不是很復雜,但我不得不查看圖書館的源代碼才能找到,所以我在這里發布這個自我回答的問題以備將來參考。

在適當的命名空間中定義驗證類和附帶的異常類,驗證庫將自動使用它們來驗證您的數據,如下所示:

myCustomValidator.php:

<?php

namespace Respect\Validation\Rules;

class myCustomValidator extends AbstractRule
{
    public function validate($input)
    {
        return true; // Implement actual check here; eg: return is_string($input);
    }
}

myCustomValidatorException.php:

<?php

namespace Respect\Validation\Exceptions;

class myCustomValidatorException extends ValidationException
{
    public static $defaultTemplates = array(
        self::MODE_DEFAULT => array(
            self::STANDARD => '{{name}} must ... ', // eg: must be string
        ),
        self::MODE_NEGATIVE => array(
            self::STANDARD => '{{name}} must not ... ', // eg: must not be string
        )
    );
}

只要這些文件包含在您的項目中, Validator::myCustomValidator()->assert( $input ); 現在應該工作。

這顯然依賴於命名約定,因此請務必使用類名來調用自定義驗證器,並且應該進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM