PHPackages                             hollodotme/fluid-validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. hollodotme/fluid-validator

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

hollodotme/fluid-validator
==========================

Validating values with a fluent interfaced class

v1.4.0(10y ago)1026.3k1MITPHPPHP &gt;=5.5

Since Jan 30Pushed 10y ago1 watchersCompare

[ Source](https://github.com/hollodotme/FluidValidator)[ Packagist](https://packagist.org/packages/hollodotme/fluid-validator)[ RSS](/packages/hollodotme-fluid-validator/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (1)Versions (12)Used By (0)

[![Build Status](https://camo.githubusercontent.com/b82629402e7d748572902a42bdcc3e49dc9a505b5e0ffb0ebc197089802c326b/68747470733a2f2f7472617669732d63692e6f72672f686f6c6c6f646f746d652f466c75696456616c696461746f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/hollodotme/FluidValidator)[![Coverage Status](https://camo.githubusercontent.com/b09003ebb36605f84968677abd966b9fca973fdc451d6ba46d47a9aceaaa08f1/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f686f6c6c6f646f746d652f466c75696456616c696461746f722f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/hollodotme/FluidValidator?branch=master)[![Latest Stable Version](https://camo.githubusercontent.com/ec5fcac435b0ae8e4787c0a1f2b9b50a09656b4d4c43c85c6acb5f7c5f383802/68747470733a2f2f706f7365722e707567782e6f72672f686f6c6c6f646f746d652f666c7569642d76616c696461746f722f762f737461626c65)](https://packagist.org/packages/hollodotme/fluid-validator)[![Total Downloads](https://camo.githubusercontent.com/d4828c687312295a7064ae0651b63411047cde743d760050cb77841add845387/68747470733a2f2f706f7365722e707567782e6f72672f686f6c6c6f646f746d652f666c7569642d76616c696461746f722f646f776e6c6f616473)](https://packagist.org/packages/hollodotme/fluid-validator)[![Latest Unstable Version](https://camo.githubusercontent.com/55d41587fd1dd7d2e20fa4f8b1c62e29da646128548bbb85aeb80881196fbd80/68747470733a2f2f706f7365722e707567782e6f72672f686f6c6c6f646f746d652f666c7569642d76616c696461746f722f762f756e737461626c65)](https://packagist.org/packages/hollodotme/fluid-validator)[![License](https://camo.githubusercontent.com/44014522a750b2d6e3cbf18ac6c9e729b6741383b0369b46156f83a8db2aed9a/68747470733a2f2f706f7365722e707567782e6f72672f686f6c6c6f646f746d652f666c7569642d76616c696461746f722f6c6963656e7365)](https://packagist.org/packages/hollodotme/fluid-validator)

FluidValidator
==============

[](#fluidvalidator)

Validating data with a fluent interfaced class

**[Read more about this approach on my blog post.](http://bit.ly/FluValEn)**

Requirements
------------

[](#requirements)

- PHP &gt;= 5.5
- [intl extension](http://php.net/manual/en/book.intl.php)

Installation
------------

[](#installation)

```
composer require "hollodotme/fluid-validator" "~1.4.0"

```

Available validation methods
----------------------------

[](#available-validation-methods)

```
public function isString( $value, $message ) : FluidValidator;
public function isStringOrNull( $value, $message ) : FluidValidator;
public function isNonEmptyString( $value, $message ) : FluidValidator;
public function isNonEmptyStringOrNull( $value, $message ) : FluidValidator;
public function isNotEmpty( $value, $message ) : FluidValidator;
public function isNotEmptyOrNull( $value, $message ) : FluidValidator;
public function isArray( $value, $message ) : FluidValidator;
public function isArrayOrNull( $value, $message ) : FluidValidator;
public function isInt( $value, $message ) : FluidValidator;
public function isIntOrNull( $value, $message ) : FluidValidator;
public function isIntInRange( $value, array $range, $message ) : FluidValidator;
public function isIntInRangeOrNull( $value, array $range, $message ) : FluidValidator;
public function isOneStringOf( $value, array $list, $message ) : FluidValidator;
public function isOneStringOfOrNull( $value, array $list, $message ) : FluidValidator;
public function isSubsetOf( $values, array $list, $message ) : FluidValidator;
public function isSubsetOfOrNull( $values, array $list, $message ) : FluidValidator;
public function isUuid( $value, $message ) : FluidValidator;
public function isUuidOrNull( $value, $message ) : FluidValidator;
public function isEqual( $value1, $value2, $message ) : FluidValidator;
public function isNotEqual( $value1, $value2, $message ) : FluidValidator;
public function isSame( $value1, $value2, $message ) : FluidValidator;
public function isNotSame( $value1, $value2, $message ) : FluidValidator;
public function isNull( $value, $message ) : FluidValidator;
public function isNotNull( $value, $message ) : FluidValidator;
public function matchesRegex( $value, $regex, $message ) : FluidValidator;
public function matchesRegexOrNull( $value, $regex, $message ) : FluidValidator;
public function hasLength( $value, $length, $message ) : FluidValidator;
public function hasLengthOrNull( $value, $length, $message ) : FluidValidator;
public function hasMinLength( $value, $minLength, $message ) : FluidValidator;
public function hasMinLengthOrNull( $value, $minLength, $message ) : FluidValidator;
public function hasMaxLength( $value, $maxLength, $message ) : FluidValidator;
public function hasMaxLengthOrNull( $value, $maxLength, $message ) : FluidValidator;
public function counts( $values, $count, $message ) : FluidValidator;
public function countsOrNull( $values, $count, $message ) : FluidValidator;
public function isEmail( $value, $message ) : FluidValidator;
public function isEmailOrNull( $value, $message ) : FluidValidator;
public function isUrl( $value, $message ) : FluidValidator;
public function isUrlNull( $value, $message ) : FluidValidator;
public function isJson( $value, $message ) : FluidValidator;
public function isJsonOrNull( $value, $message ) : FluidValidator;
public function hasKey( $values, $key, $message ) : FluidValidator;
public function hasKeyOrNull( $values, $key, $message ) : FluidValidator;
public function isDate( $dateString, $format = 'Y-m-d', $message ) : FluidValidator;
public function isDateOrNull( $dateString, $format = 'Y-m-d', $message ) : FluidValidator;
public function isTrue( $value, $message ) : FluidValidator;
public function isTrueOrNull( $value, $message ) : FluidValidator;
public function isFalse( $value, $message ) : FluidValidator;
public function isFalseOrNull( $value, $message ) : FluidValidator;
```

Conditional methods
-------------------

[](#conditional-methods)

Alvailable since version `1.1.0`:

```
public function checkIf( $expression, $continue ) : FluidValidator;
public function ifIsString( $value, $continue ) : FluidValidator;
public function ifIsStringOrNull( $value, $continue ) : FluidValidator;
public function ifIsNonEmptyString( $value, $continue ) : FluidValidator;
public function ifIsNonEmptyStringOrNull( $value, $continue ) : FluidValidator;
public function ifIsNotEmpty( $value, $continue ) : FluidValidator;
public function ifIsNotEmptyOrNull( $value, $continue ) : FluidValidator;
public function ifIsArray( $value, $continue ) : FluidValidator;
public function ifIsArrayOrNull( $value, $continue ) : FluidValidator;
public function ifIsInt( $value, $continue ) : FluidValidator;
public function ifIsIntOrNull( $value, $continue ) : FluidValidator;
public function ifIsIntInRange( $value, array $range, $continue ) : FluidValidator;
public function ifIsIntInRangeOrNull( $value, array $range, $continue ) : FluidValidator;
public function ifIsOneStringOf( $value, array $list, $continue ) : FluidValidator;
public function ifIsOneStringOfOrNull( $value, array $list, $continue ) : FluidValidator;
public function ifIsSubsetOf( $values, array $list, $continue ) : FluidValidator;
public function ifIsSubsetOfOrNull( $values, array $list, $continue ) : FluidValidator;
public function ifIsUuid( $value, $continue ) : FluidValidator;
public function ifIsUuidOrNull( $value, $continue ) : FluidValidator;
public function ifIsEqual( $value1, $value2, $continue ) : FluidValidator;
public function ifIsNotEqual( $value1, $value2, $continue ) : FluidValidator;
public function ifIsSame( $value1, $value2, $continue ) : FluidValidator;
public function ifIsNotSame( $value1, $value2, $continue ) : FluidValidator;
public function ifIsNull( $value, $continue ) : FluidValidator;
public function ifIsNotNull( $value, $continue ) : FluidValidator;
public function ifMatchesRegex( $value, $regex, $continue ) : FluidValidator;
public function ifMatchesRegexOrNull( $value, $regex, $continue ) : FluidValidator;
public function ifHasLength( $value, $length, $continue ) : FluidValidator;
public function ifHasLengthOrNull( $value, $length, $continue ) : FluidValidator;
public function ifHasMinLength( $value, $minLength, $continue ) : FluidValidator;
public function ifHasMinLengthOrNull( $value, $minLength, $continue ) : FluidValidator;
public function ifHasMaxLength( $value, $maxLength, $continue ) : FluidValidator;
public function ifHasMaxLengthOrNull( $value, $maxLength, $continue ) : FluidValidator;
public function ifCounts( $values, $count, $continue ) : FluidValidator;
public function ifCountsOrNull( $values, $count, $continue ) : FluidValidator;
public function ifIsEmail( $value, $continue ) : FluidValidator;
public function ifIsEmailOrNull( $value, $continue ) : FluidValidator;
public function ifIsUrl( $value, $continue ) : FluidValidator;
public function ifIsUrlNull( $value, $continue ) : FluidValidator;
public function ifIsJson( $value, $continue ) : FluidValidator;
public function ifIsJsonOrNull( $value, $continue ) : FluidValidator;
public function ifHasKey( $values, $key, $continue ) : FluidValidator;
public function ifHasKeyOrNull( $values, $key, $continue ) : FluidValidator;
public function ifIsDate( $dateString, $format = 'Y-m-d', $continue ) : FluidValidator;
public function ifIsDateOrNull( $dateString, $format = 'Y-m-d', $continue ) : FluidValidator;
public function ifIsTrue( $value, $continue ) : FluidValidator;
public function ifIsTrueOrNull( $value, $continue ) : FluidValidator;
public function ifIsFalse( $value, $continue ) : FluidValidator;
public function ifIsFalseOrNull( $value, $continue ) : FluidValidator;
```

Available since version `1.3.0`:

```
public function ifPassed( $continue ) : FluidValidator;
```

Non-validation methods
----------------------

[](#non-validation-methods)

```
# Resets the validator to its initial state
public function reset() : FluidValidator;

# Returns TRUE, if all validations have passed, otherwise FALSE
public function passed() : bool;

# Returns TRUE, if one or more validations have failed, otherwise FALSE
public function failed() : bool;

# Returns the the value for $var from data provider, or $var if no data provider is set.
public function getValue( $var ) : mixed;

# Returns an array of messages collected from failed validations
public function getMessages() : array;
```

Available validation modes
--------------------------

[](#available-validation-modes)

```
# Processes all validations regardless of failed ones
CheckMode::CONTINUOUS

# Processes all validations until the first one failed
CheckMode::STOP_ON_FIRST_FAIL
```

Available message collectors
----------------------------

[](#available-message-collectors)

- `ScalarListMessageCollector` for collecting scalar message values (default, if none is provided)
- `GroupedListMessageCollector` for collecting scalar key / scalar value messages grouped by key

Basic usage
-----------

[](#basic-usage)

```
