mirror of
https://github.com/vlucas/valitron.git
synced 2025-12-30 23:01:52 +00:00
commit
a2c165f650
@ -3,7 +3,7 @@
|
||||
Valitron is a simple, minimal and elegant stand-alone validation library
|
||||
with NO dependencies. Valitron uses simple, straightforward validation
|
||||
methods with a focus on readable and concise syntax. Valitron is the
|
||||
simple and pragmatic validation library you've been loking for.
|
||||
simple and pragmatic validation library you've been looking for.
|
||||
|
||||
[](https://travis-ci.org/vlucas/valitron)
|
||||
@ -152,7 +152,7 @@ Putting these techniques together, you can create a complete
|
||||
rule definition in a relatively compact data structure.
|
||||
|
||||
You can continue to add individual rules with the `rule` method
|
||||
even after specifying a rule defnition via an array. This is
|
||||
even after specifying a rule definition via an array. This is
|
||||
especially useful if you are defining custom validation rules.
|
||||
|
||||
```php
|
||||
|
||||
10
lang/en.php
10
lang/en.php
@ -12,12 +12,12 @@ return array(
|
||||
'in' => "Invalid value",
|
||||
'notIn' => "Invalid value",
|
||||
'ip' => "Invalid IP address",
|
||||
'email' => "Inalid email address",
|
||||
'url' => "Inalid URL",
|
||||
'email' => "Invalid email address",
|
||||
'url' => "Invalid URL",
|
||||
'urlActive' => "Must be active domain",
|
||||
'alpha' => "Must contain only leters a-z",
|
||||
'alphaNum' => "Must contain only leters a-z and/or numbers 0-9",
|
||||
'slug' => "Must contain only leters a-z, numbers 0-9, dashes and underscores",
|
||||
'alpha' => "Must contain only letters a-z",
|
||||
'alphaNum' => "Must contain only letters a-z and/or numbers 0-9",
|
||||
'slug' => "Must contain only letters a-z, numbers 0-9, dashes and underscores",
|
||||
'regex' => "Invalid format",
|
||||
'date' => "Invalid date",
|
||||
'dateFormat' => "Must be date with format '%s'",
|
||||
|
||||
@ -4,7 +4,7 @@ namespace Valitron;
|
||||
/**
|
||||
* Validation Class
|
||||
*
|
||||
* Validates input against certian criteria
|
||||
* Validates input against certain criteria
|
||||
*
|
||||
* @package Valitron
|
||||
* @author Vance Lucas <vance@vancelucas.com>
|
||||
@ -32,16 +32,16 @@ class Validator
|
||||
{
|
||||
// Allows filtering of used input fields against optional second array of field names allowed
|
||||
// This is useful for limiting raw $_POST or $_GET data to only known fields
|
||||
foreach($data as $field => $value) {
|
||||
if(empty($fields) || (!empty($fields) && in_array($field, $fields))) {
|
||||
foreach ($data as $field => $value) {
|
||||
if (empty($fields) || (!empty($fields) && in_array($field, $fields))) {
|
||||
$this->_fields[$field] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// Only load language files if language or directory has changed
|
||||
if($lang !== static::$_lang || $langDir !== static::$_langDir) {
|
||||
if ($lang !== static::$_lang || $langDir !== static::$_langDir) {
|
||||
// Set language directory for loading language files
|
||||
if($langDir === null) {
|
||||
if ($langDir === null) {
|
||||
$langDir = dirname(dirname(__DIR__)) . '/lang';
|
||||
}
|
||||
static::langDir($langDir);
|
||||
@ -56,7 +56,7 @@ class Validator
|
||||
*/
|
||||
public static function lang($lang = null)
|
||||
{
|
||||
if($lang !== null) {
|
||||
if ($lang !== null) {
|
||||
static::$_lang = $lang;
|
||||
|
||||
// Load language file in directory
|
||||
@ -71,7 +71,7 @@ class Validator
|
||||
*/
|
||||
public static function langDir($dir = null)
|
||||
{
|
||||
if($dir !== null) {
|
||||
if ($dir !== null) {
|
||||
static::$_langDir = $dir;
|
||||
}
|
||||
return static::$_langDir;
|
||||
@ -82,9 +82,9 @@ class Validator
|
||||
*/
|
||||
protected function validateRequired($field, $value)
|
||||
{
|
||||
if(is_null($value)) {
|
||||
if (is_null($value)) {
|
||||
return false;
|
||||
} elseif(is_string($value) and trim($value) === '') {
|
||||
} elseif (is_string($value) and trim($value) === '') {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -95,7 +95,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return void
|
||||
*/
|
||||
protected function validateEquals($field, $value, array $params)
|
||||
@ -109,7 +109,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateDifferent($field, $value, array $params)
|
||||
@ -162,14 +162,14 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateLength($field, $value, $params)
|
||||
{
|
||||
$length = $this->stringLength($value);
|
||||
// Length between
|
||||
if(isset($params[1])) {
|
||||
if (isset($params[1])) {
|
||||
return $length >= $params[0] && $length <= $params[1];
|
||||
}
|
||||
// Length same
|
||||
@ -195,7 +195,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateMin($field, $value, $params)
|
||||
@ -208,7 +208,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateMax($field, $value, $params)
|
||||
@ -221,7 +221,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateIn($field, $value, $params)
|
||||
@ -234,7 +234,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateNotIn($field, $value, $params)
|
||||
@ -252,7 +252,7 @@ class Validator
|
||||
*/
|
||||
protected function validateContains($field, $value, $params)
|
||||
{
|
||||
if(!isset($params[0])) {
|
||||
if (!isset($params[0])) {
|
||||
return false;
|
||||
}
|
||||
if (!is_string($params[0]) || !is_string($value)) {
|
||||
@ -295,7 +295,7 @@ class Validator
|
||||
protected function validateUrl($field, $value)
|
||||
{
|
||||
foreach ($this->validUrlPrefixes as $prefix) {
|
||||
if(strpos($value, $prefix) !== false) {
|
||||
if (strpos($value, $prefix) !== false) {
|
||||
return filter_var($value, FILTER_VALIDATE_URL) !== false;
|
||||
}
|
||||
}
|
||||
@ -312,7 +312,7 @@ class Validator
|
||||
protected function validateUrlActive($field, $value)
|
||||
{
|
||||
foreach ($this->validUrlPrefixes as $prefix) {
|
||||
if(strpos($value, $prefix) !== false) {
|
||||
if (strpos($value, $prefix) !== false) {
|
||||
$url = str_replace($prefix, '', strtolower($value));
|
||||
|
||||
return checkdnsrr($url);
|
||||
@ -362,6 +362,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateRegex($field, $value, $params)
|
||||
@ -386,7 +387,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateDateFormat($field, $value, $params)
|
||||
@ -401,7 +402,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateDateBefore($field, $value, $params)
|
||||
@ -416,7 +417,7 @@ class Validator
|
||||
*
|
||||
* @param string $field
|
||||
* @param mixed $value
|
||||
* @param array $fields
|
||||
* @param array $params
|
||||
* @return bool
|
||||
*/
|
||||
protected function validateDateAfter($field, $value, $params)
|
||||
@ -439,7 +440,7 @@ class Validator
|
||||
*/
|
||||
public function errors($field = null)
|
||||
{
|
||||
if($field !== null) {
|
||||
if ($field !== null) {
|
||||
return isset($this->_errors[$field]) ? $this->_errors[$field] : false;
|
||||
}
|
||||
return $this->_errors;
|
||||
@ -452,11 +453,11 @@ class Validator
|
||||
{
|
||||
$values = array();
|
||||
// Printed values need to be in string format
|
||||
foreach($params as $param) {
|
||||
if(is_array($param)) {
|
||||
foreach ($params as $param) {
|
||||
if (is_array($param)) {
|
||||
$param = "['" . implode("', '", $param) . "']";
|
||||
}
|
||||
if($param instanceof \DateTime) {
|
||||
if ($param instanceof \DateTime) {
|
||||
$param = $param->format('Y-m-d');
|
||||
}
|
||||
$values[] = $param;
|
||||
@ -490,12 +491,12 @@ class Validator
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
foreach($this->_validations as $v) {
|
||||
foreach($v['fields'] as $field) {
|
||||
foreach ($this->_validations as $v) {
|
||||
foreach ($v['fields'] as $field) {
|
||||
$value = isset($this->_fields[$field]) ? $this->_fields[$field] : null;
|
||||
|
||||
// Callback is user-specified or assumed method on class
|
||||
if(isset(static::$_rules[$v['rule']])) {
|
||||
if (isset(static::$_rules[$v['rule']])) {
|
||||
$callback = static::$_rules[$v['rule']];
|
||||
} else {
|
||||
$callback = array($this, 'validate' . ucfirst($v['rule']));
|
||||
@ -515,7 +516,7 @@ class Validator
|
||||
*/
|
||||
public static function addRule($name, $callback, $message = self::ERROR_DEFAULT)
|
||||
{
|
||||
if(!is_callable($callback)) {
|
||||
if (!is_callable($callback)) {
|
||||
throw new \InvalidArgumentException("Second argument must be a valid callback. Given argument was not callable.");
|
||||
}
|
||||
|
||||
@ -528,9 +529,9 @@ class Validator
|
||||
*/
|
||||
public function rule($rule, $fields)
|
||||
{
|
||||
if(!isset(static::$_rules[$rule])) {
|
||||
if (!isset(static::$_rules[$rule])) {
|
||||
$ruleMethod = 'validate' . ucfirst($rule);
|
||||
if(!method_exists($this, $ruleMethod)) {
|
||||
if (!method_exists($this, $ruleMethod)) {
|
||||
throw new \InvalidArgumentException("Rule '" . $rule . "' has not been registered with " . __CLASS__ . "::addRule().");
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user