您的位置:首页 > 编程语言 > PHP开发

[李景山php]每天laravel-20161010|Validator.php-10

2016-08-11 09:05 549 查看
/**
* Validate the guessed extension of a file upload is in a set of file extensions.
*
* @param  string  $attribute
* @param  mixed  $value
* @param  array   $parameters
* @return bool
*/
protected function validateMimes($attribute, $value, $parameters)
{
if (! $this->isAValidFileInstance($value)) {
return false;
}// first this must be a file.

return $value->getPath() != '' && in_array($value->guessExtension(), $parameters);
// get path()
}// this extension about file be guessed

/**
* Validate the MIME type of a file upload attribute is in a set of MIME types.
*
* @param  string  $attribute
* @param  mixed  $value
* @param  array  $parameters
* @return bool
*/
protected function validateMimetypes($attribute, $value, $parameters)
{
if (! $this->isAValidFileInstance($value)) {
return false;
}

return $value->getPath() != '' && in_array($value->getMimeType(), $parameters);
}//validate the MIME type of a file upload attribute is in a set of MIME types

/**
* Check that the given value is a valid file instance.
*
* @param  mixed  $value
* @return bool
*/
public function isAValidFileInstance($value)
{
if ($value instanceof UploadedFile && ! $value->isValid()) {
return false;
}// this value is a instanceof this Uploaded File

return $value instanceof File;
}//check that the given value is a valid file instance.

/**
* Validate that an attribute contains only alphabetic characters.
*
* @param  string  $attribute
* @param  mixed   $value
* @return bool
*/
protected function validateAlpha($attribute, $value)
{
return is_string($value) && preg_match('/^[\pL\pM]+$/u', $value);
}//get this value just abcd  means it is alphabetic
// just return this value,use preg_match

/**
* Validate that an attribute contains only alpha-numeric characters.
*
* @param  string  $attribute
* @param  mixed   $value
* @return bool
*/
protected function validateAlphaNum($attribute, $value)
{
if (! is_string($value) && ! is_numeric($value)) {
return false;
}// this is_string

return preg_match('/^[\pL\pM\pN]+$/u', $value);//change this preg match
}// this must be alpha and numeric characters.

/**
* Validate that an attribute contains only alpha-numeric characters, dashes, and underscores.
*
* @param  string  $attribute
* @param  mixed   $value
* @return bool
*/
protected function validateAlphaDash($attribute, $value)
{
if (! is_string($value) && ! is_numeric($value)) {
return false;
}

return preg_match('/^[\pL\pM\pN_-]+$/u', $value);
}// a validate way, alpha number dash and underscores

/**
* Validate that an attribute passes a regular expression check.
*
* @param  string  $attribute
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateRegex($attribute, $value, $parameters)
{
if (! is_string($value) && ! is_numeric($value)) {
return false;
}

$this->requireParameterCount(1, $parameters, 'regex');

return preg_match($parameters[0], $value);
}// a user rule , this rule is a regex

/**
* Validate that an attribute is a valid date.
*
* @param  string  $attribute
* @param  mixed   $value
* @return bool
*/
protected function validateDate($attribute, $value)
{//Validate that an attribute is a valid date.
if ($value instanceof DateTime) {
return true;
}// a instanceof DateTime

if (strtotime($value) === false) {
return false;
}// a false

$date = date_parse($value);// get date

return checkdate($date['month'], $date['day'], $date['year']);
}// check date

/**
* Validate that an attribute matches a date format.
*
* @param  string  $attribute
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateDateFormat($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'date_format');//get count

$parsed = date_parse_from_format($parameters[0], $value);//date_parse_from_format

return $parsed['error_count'] === 0 && $parsed['warning_count'] === 0;//error_count
}// validate that an attribute matches a date format

/**
* Validate the date is before a given date.
*
* @param  string  $attribute
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateBefore($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'before');

if ($format = $this->getDateFormat($attribute)) {
return $this->validateBeforeWithFormat($format, $value, $parameters);
}

if (! ($date = strtotime($parameters[0]))) {
return strtotime($value) < strtotime($this->getValue($parameters[0]));
}//str to time

return strtotime($value) < $date;
}//validate before

/**
* Validate the date is before a given date with a given format.
*
* @param  string  $format
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateBeforeWithFormat($format, $value, $parameters)
{
$param = $this->getValue($parameters[0]) ?: $parameters[0];

return $this->checkDateTimeOrder($format, $value, $param);
}//validate before with format

/**
* Validate the date is after a given date.
*
* @param  string  $attribute
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateAfter($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'after');

if ($format = $this->getDateFormat($attribute)) {
return $this->validateAfterWithFormat($format, $value, $parameters);
}

if (! ($date = strtotime($parameters[0]))) {
return strtotime($value) > strtotime($this->getValue($parameters[0]));
}

return strtotime($value) > $date;
}// validate after ,just a monitor model

/**
* Validate the date is after a given date with a given format.
*
* @param  string  $format
* @param  mixed   $value
* @param  array   $parameters
* @return bool
*/
protected function validateAfterWithFormat($format, $value, $parameters)
{
$param = $this->getValue($parameters[0]) ?: $parameters[0];// get the param

return $this->checkDateTimeOrder($format, $param, $value);// get the check result
}// validate the date is after a given date with a given format
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: