The popphp/pop-validator component provides a basic API to process simple validation of values.


Install it directly into your project:

composer require popphp/pop-validator

Or, include it in your composer.json file:

    "require": {
        "popphp/pop-validator": "^3.1.2",

Basic Use

Here’s a list of the available built-in validators:

Built-in Validators
AlphaNumeric Ipv4 LessThanEqual
Alpha Ipv6 LessThan
BetweenInclude IsSubnetOf NotContains
Between LengthBetweenInclude NotEmpty
Contains LengthBetween NotEqual
CreditCard LengthGte Numeric
Email LengthGt RegEx
Equal LengthLte Subnet
GreaterThanEqual LengthLt Url
GreaterThan Length  

Here’s an example testing an email value

$validator = new Pop\Validator\Email();

// Returns false
if ($validator->evaluate('bad-email-address')) {
    // Prints out the default message 'The value must be a valid email format.'
    echo $validator->getMessage();

// Returns true
if ($validator->evaluate('good@email.com')) {
    // Do something with a valid email address.

Validate Specific Values

$validator = new Pop\Validator\LessThan(10);

if ($validator->evaluate(8)) { } // Returns true

Set a Custom Message

$validator = new Pop\Validator\RegEx(
    'You must only submit JPG, PNG or GIF images.'

// Returns false
if ($validator->evaluate('image.bad')) {
    echo $validator->getMessage();


$validator = new Pop\Validator\RegEx('/^.*\.(jpg|jpeg|png|gif)$/i');
$validator->setMessage('You must only submit JPG, PNG or GIF images.');

if ($validator->evaluate('image.jpg')) { } // Returns true