定制 nilportugues/assert 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nilportugues/assert

最新稳定版本:1.0.2

Composer 安装命令:

composer require nilportugues/assert

包简介

A simple and elegant assertion and guard methods library for input validation.

README 文档

README

Build Status Coverage Status SensioLabsInsight Latest Stable Version Total Downloads License Donate

While I know there are out there other assertion libraries I was unhappy with them, so I wrote my own.

Usage

Assertion library is really straight forward. Pass input to the method call and it will just run or throw an \Exception if it doesn't meet the requirements.

use NilPortugues\Assert\Assert;

try {
    Assert::nullOrIsLowercase(null);
    Assert::isUppercase('THIS IS GREAT');
    Assert::isNight(new \DateTime('now'));
    
} catch (Exception $e) {
    echo 'Did not meet the requirements, too bad!';
}

Assertion Methods

All assertion methods can be used against different data types (integer, double, objects..).

If you try to validate data for an unexpected data type, an Exception will be thrown making your assertion fail as expected.

Most methods can be called using the "nullOr" prefix instead of the "is" prefix. For instance:

Assert::nullOrIsLowercase('lowercase'); //OK
Assert::isLowercase(null); //raises Exception

Assertion List

All methods allow specifying a custom $message value. If not passed in, a library-defined default will be used.

Those accepting a callable as an argument, expect an Assert statement to be used inside the callable.

Generic Assertions

Assert::isRequired($value, $message = '');
Assert::isNotNull($value, $message = '');
Assert::notEquals($property, $value, $message = '');
Assert::greaterThanOrEqual($property, $value, $message = '');
Assert::greaterThan($property, $value, $message = '');
Assert::lessThanOrEqual($property, $value, $message = '');
Assert::lessThan($property, $value, $message = '');
Assert::isScalar($value, $message = '');

// nullOr assertions
Assert::nullOrNotEquals($property, $value, $message = '');
Assert::nullOrGreaterThanOrEqual($property, $value, $message = '');
Assert::nullOrGreaterThan($property, $value, $message = '');
Assert::nullOrLessThanOrEqual($property, $value, $message = '');
Assert::nullOrLessThan($property, $value, $message = '');
Assert::nullOrIsScalar($value, $message = '');

String Assertions

Assert::isString($value, $message = '')
Assert::isAlphanumeric($value, $message = '')
Assert::isAlpha($value, $message = '')
Assert::isBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::isCharset($value, $charset, $message = '')
Assert::isAllConsonants($value, $message = '')
Assert::contains($value, $contains, $identical = false, $message = '')
Assert::isControlCharacters($value, $message = '')
Assert::isDigit($value, $message = '')
Assert::endsWith($value, $contains, $identical = false, $message = '')
Assert::equals($value, $comparedValue, $identical = false, $message = '')
Assert::in($value, $haystack, $identical = false, $message = '')
Assert::hasGraphicalCharsOnly($value, $message = '')
Assert::hasLength($value, $length, $message = '')
Assert::isLowercase($value, $message = '')
Assert::notEmpty($value, $message = '')
Assert::noWhitespace($value, $message = '')
Assert::hasPrintableCharsOnly($value, $message = '')
Assert::isPunctuation($value, $message = '')
Assert::matchesRegex($value, $regex, $message = '')
Assert::isSlug($value, $message = '')
Assert::isSpace($value, $message = '')
Assert::startsWith($value, $contains, $identical = false, $message = '')
Assert::isUppercase($value, $message = '')
Assert::isVersion($value, $message = '')
Assert::isVowel($value, $message = '')
Assert::isHexDigit($value, $message = '')
Assert::hasLowercase($value, $amount = null, $message = '')
Assert::hasUppercase($value, $amount = null, $message = '')
Assert::hasNumeric($value, $amount = null, $message = '')
Assert::hasSpecialCharacters($value, $amount = null, $message = '')
Assert::isEmail($value, $message = '')
Assert::isUrl($value, $message = '')
Assert::isUUID($value, $strict = true, $message = '')
Assert::isLatitude($latitude, $message = '')
Assert::isLongitude($lontitude, $message = '')
Assert::isTimeString($value, $message = '')
Assert::isDateString($value, $message = '')
Assert::isHexColor($value, $message = '')
Assert::isIpAddress($value, $message = '')
Assert::isIpv4Address($value, $message = '')
Assert::isIpv6Address($value, $message = '')
Assert::isJson($value, $message = '')
Assert::isCreditCard($value, $message = '')
Assert::isPalindrome($value, $message = '')
Assert::isUnderScore($value, $message = '')
Assert::isTitleCase($value, $message = '')
 
// nullOr assertions
Assert::nullOrIsString($value, $message = '')
Assert::nullOrIsAlphanumeric($value, $message = '')
Assert::nullOrIsAlpha($value, $message = '')
Assert::nullOrIsBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::nullOrIsCharset($value, $charset, $message = '')
Assert::nullOrIsAllConsonants($value, $message = '')
Assert::nullOrContains($value, $contains, $identical = false, $message = '')
Assert::nullOrIsControlCharacters($value, $message = '')
Assert::nullOrIsDigit($value, $message = '')
Assert::nullOrEndsWith($value, $contains, $identical = false, $message = '')
Assert::nullOrEquals($value, $comparedValue, $identical = false, $message = '')
Assert::nullOrIn($value, $haystack, $identical = false, $message = '')
Assert::nullOrHasGraphicalCharsOnly($value, $message = '')
Assert::nullOrHasLength($value, $length, $message = '')
Assert::nullOrIsLowercase($value, $message = '')
Assert::nullOrNotEmpty($value, $message = '')
Assert::nullOrNoWhitespace($value, $message = '')
Assert::nullOrHasPrintableCharsOnly($value, $message = '')
Assert::nullOrIsPunctuation($value, $message = '')
Assert::nullOrMatchesRegex($value, $regex, $message = '')
Assert::nullOrIsSlug($value, $message = '')
Assert::nullOrIsSpace($value, $message = '')
Assert::nullOrStartsWith($value, $contains, $identical = false, $message = '')
Assert::nullOrIsUppercase($value, $message = '')
Assert::nullOrIsVersion($value, $message = '')
Assert::nullOrIsVowel($value, $message = '')
Assert::nullOrIsHexDigit($value, $message = '')
Assert::nullOrHasLowercase($value, $amount = null, $message = '')
Assert::nullOrHasUppercase($value, $amount = null, $message = '')
Assert::nullOrHasNumeric($value, $amount = null, $message = '')
Assert::nullOrHasSpecialCharacters($value, $amount = null, $message = '')
Assert::nullOrIsEmail($value, $message = '')
Assert::nullOrIsUrl($value, $message = '')
Assert::nullOrIsUUID($value, $strict = true, $message = '')
Assert::nullOrIsLatitude($latitude, $message = '')
Assert::nullOrIsLongitude($lontitude, $message = '')
Assert::nullOrIsTimeString($value, $message = '')
Assert::nullOrIsDateString($value, $message = '')
Assert::nullOrIsHexColor($value, $message = '')
Assert::nullOrIsIpAddress($value, $message = '')
Assert::nullOrIsIpv4Address($value, $message = '')
Assert::nullOrIsIpv6Address($value, $message = '')
Assert::nullOrIsJson($value, $message = '')
Assert::nullOrIsCreditCard($value, $message = '')
Assert::nullOrIsPalindrome($value, $message = '')
Assert::nullOrIsUnderScore($value, $message = '')
Assert::nullOrIsTitleCase($value, $message = '')

Integer Assertions

Assert::isInteger($value, $message = '')
Assert::isNotZero($value, $message = '')
Assert::isPositiveOrZero($value, $message = '')
Assert::isPositive($value, $message = '')
Assert::isNegativeOrZero($value, $message = '')
Assert::isNegative($value, $message = '')
Assert::isBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::isOdd($value, $message = '')
Assert::isEven($value, $message = '')
Assert::isMultiple($value, $multiple, $message = '')

// nullOr assertions
Assert::nullOrIsInteger($value, $message = '')
Assert::nullOrIsNotZero($value, $message = '')
Assert::nullOrIsPositiveOrZero($value, $message = '')
Assert::nullOrIsPositive($value, $message = '')
Assert::nullOrIsNegativeOrZero($value, $message = '')
Assert::nullOrIsNegative($value, $message = '')
Assert::nullOrIsBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::nullOrIsOdd($value, $message = '')
Assert::nullOrIsEven($value, $message = '')
Assert::nullOrIsMultiple($value, $multiple, $message = '')

Float & Double Assertions

Assert::isFloat($value, $message = '')
Assert::isNotZero($value, $message = '')
Assert::isPositiveOrZero($value, $message = '')
Assert::isPositive($value, $message = '')
Assert::isNegativeOrZero($value, $message = '')
Assert::isNegative($value, $message = '')
Assert::isBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::isOdd($value, $message = '')
Assert::isEven($value, $message = '')
Assert::isMultiple($value, $multiple, $message = '')

// nullOr assertions
Assert::nullOrIsFloat($value, $message = '')
Assert::nullOrIsNotZero($value, $message = '')
Assert::nullOrIsPositiveOrZero($value, $message = '')
Assert::nullOrIsPositive($value, $message = '')
Assert::nullOrIsNegativeOrZero($value, $message = '')
Assert::nullOrIsNegative($value, $message = '')
Assert::nullOrIsBetween($value, $min, $max, $inclusive = false, $message = '')
Assert::nullOrIsOdd($value, $message = '')
Assert::nullOrIsEven($value, $message = '')
Assert::nullOrIsMultiple($value, $multiple, $message = '')

Array & Collection Assertions

Assert::isArray($value, $message = '')
Assert::each($value, callable $valueValidator, callable $keyValidator = null, $message = '')
Assert::hasKeyFormat($value, callable $keyValidator, $message = '')
Assert::endsWith($haystack, $needle, $strict = false, $message = '')
Assert::contains($haystack, $needle, $strict = false, $message = '')
Assert::hasKey($value, $keyName, $message = '')
Assert::hasLength($value, $length, $message = '')
Assert::isNotEmpty($value, $message = '')
Assert::startsWith($haystack, $needle, $strict = false, $message = '')

// nullOr assertions
Assert::nullOrIsArray($value, $message = '')
Assert::nullOrEach($value, callable $valueValidator, callable $keyValidator = null, $message = '')
Assert::nullOrHasKeyFormat($value, callable $keyValidator, $message = '')
Assert::nullOrEndsWith($haystack, $needle, $strict = false, $message = '')
Assert::nullOrContains($haystack, $needle, $strict = false, $message = '')
Assert::nullOrHasKey($value, $keyName, $message = '')
Assert::nullOrHasLength($value, $length, $message = '')
Assert::nullOrIsNotEmpty($value, $message = '')
Assert::nullOrStartsWith($haystack, $needle, $strict = false, $message = '')

DateTime Assertions

Assert::isDateTime($value, $message = '')
Assert::isAfter($value, $limit, $inclusive = false, $message = '')
Assert::isBefore($value, $limit, $inclusive = false, $message = '')
Assert::isDateRange($value, $minDate, $maxDate, $inclusive = false, $message = '')
Assert::isWeekend($value, $message = '')
Assert::isWeekday($value, $message = '')
Assert::isMonday($value, $message = '')
Assert::isTuesday($value, $message = '')
Assert::isWednesday($value, $message = '')
Assert::isThursday($value, $message = '')
Assert::isFriday($value, $message = '')
Assert::isSaturday($value, $message = '')
Assert::isSunday($value, $message = '')
Assert::isToday($value, $message = '')
Assert::isYesterday($value, $message = '')
Assert::isTomorrow($value, $message = '')
Assert::isLeapYear($value, $message = '')
Assert::isMorning($value, $message = '')
Assert::isAfternoon($value, $message = '')
Assert::isEvening($value, $message = '')
Assert::isNight($value, $message = '')
Assert::isFutureDate($value, $message = '')
Assert::isPastDate($value, $message = '')
Assert::isInNextWeek($value, $message = '')
Assert::isInWeek($value, $weekNumber, $message)
Assert::isInLastWeek($value, $message = '')
Assert::isInLastMonth($value, $message = '')
Assert::isInMonth($value, $monthNumber, $message)
Assert::isInNextMonth($value, $message = '')
Assert::isInLastYear($value, $message = '')
Assert::isInYear($value, $yearNumber, $message)
Assert::isInNextYear($value, $message = '')
Assert::isFirstHalfOfYear($value, $message = '')
Assert::isSecondHalfOfYear($value, $message = '')
Assert::isTrimesterOfYear($value, $trimester, $message = '')
Assert::isQuarterOfYear($value, $quarter, $message = '')
Assert::isDayLightSavingTime($value, \DateTimeZone $timezone, $message = '')

// nullOr assertions
Assert::nullOrIsDateTime($value, $message = '')
Assert::nullOrIsAfter($value, $limit, $inclusive = false, $message = '')
Assert::nullOrIsBefore($value, $limit, $inclusive = false, $message = '')
Assert::nullOrIsDateRange($value, $minDate, $maxDate, $inclusive = false, $message = '')
Assert::nullOrIsWeekend($value, $message = '')
Assert::nullOrIsWeekday($value, $message = '')
Assert::nullOrIsMonday($value, $message = '')
Assert::nullOrIsTuesday($value, $message = '')
Assert::nullOrIsWednesday($value, $message = '')
Assert::nullOrIsThursday($value, $message = '')
Assert::nullOrIsFriday($value, $message = '')
Assert::nullOrIsSaturday($value, $message = '')
Assert::nullOrIsSunday($value, $message = '')
Assert::nullOrIsToday($value, $message = '')
Assert::nullOrIsYesterday($value, $message = '')
Assert::nullOrIsTomorrow($value, $message = '')
Assert::nullOrIsLeapYear($value, $message = '')
Assert::nullOrIsMorning($value, $message = '')
Assert::nullOrIsAfternoon($value, $message = '')
Assert::nullOrIsEvening($value, $message = '')
Assert::nullOrIsNight($value, $message = '')
Assert::nullOrIsFutureDate($value, $message = '')
Assert::nullOrIsPastDate($value, $message = '')
Assert::nullOrIsInNextWeek($value, $message = '')
Assert::nullOrIsInWeek($value, $weekNumber, $message)
Assert::nullOrIsInLastWeek($value, $message = '')
Assert::nullOrIsInLastMonth($value, $message = '')
Assert::nullOrIsInMonth($value, $monthNumber, $message)
Assert::nullOrIsInNextMonth($value, $message = '')
Assert::nullOrIsInLastYear($value, $message = '')
Assert::nullOrIsInYear($value, $yearNumber, $message)
Assert::nullOrIsInNextYear($value, $message = '')
Assert::nullOrIsFirstHalfOfYear($value, $message = '')
Assert::nullOrIsSecondHalfOfYear($value, $message = '')
Assert::nullOrIsTrimesterOfYear($value, $trimester, $message = '')
Assert::nullOrIsQuarterOfYear($value, $quarter, $message = '')
Assert::nullOrIsDayLightSavingTime($value, \DateTimeZone $timezone, $message = '')

Object Assertions

Assert::isObject($value, $message = '')
Assert::isInstanceOf($value, $instanceOf, $message = '')
Assert::hasProperty($value, $property, $message = '')
Assert::hasMethod($value, $method, $message = '')
Assert::hasParentClass($value, $message = '')
Assert::isChildOf($value, $parentClass, $message = '')
Assert::inheritsFrom($value, $inheritsClass, $message = '')
Assert::hasInterface($value, $interface, $message = '')

// nullOr assertions
Assert::nullOrIsObject($value, $message = '')
Assert::nullOrIsInstanceOf($value, $instanceOf, $message = '')
Assert::nullOrHasProperty($value, $property, $message = '')
Assert::nullOrHasMethod($value, $method, $message = '')
Assert::nullOrHasParentClass($value, $message = '')
Assert::nullOrIsChildOf($value, $parentClass, $message = '')
Assert::nullOrInheritsFrom($value, $inheritsClass, $message = '')
Assert::nullOrHasInterface($value, $interface, $message = '')

FileUpload Assertions

FileUpload Assertions look into the $_FILES global variable.

Assert::isFileUploaded($uploadName, $message = '')
Assert::isFileUploadedBetweenFileSize($uploadName, $minSize, $maxSize, $format='B', $inclusive = false, $message = '')
Assert::hasFileUploadedFileNameFormat($uploadName, callable $assertion, $message = '')
Assert::hasFileUploadedValidUploadDirectory($uploadName, $uploadDir, $message = '')
Assert::isFileUploadedNotOverwritingExistingFile($uploadName, $uploadDir, $message = '')
Assert::hasFileUploadedFileNameLength($uploadName, $size, $message = '')
Assert::isFileUploadedImage($uploadName, $message = '')
Assert::isFileUploadedMimeType($uploadName, array $allowedTypes, $message = '') 

// nullOr assertions
Assert::nullOrIsFileUploaded($uploadName, $message = '')
Assert::nullOrIsFileUploadedBetweenFileSize($uploadName, $minSize, $maxSize, $format='B', $inclusive=false, $message='')
Assert::nullOrHasFileUploadedFileNameFormat($uploadName, callable $assertion, $message = '')
Assert::nullOrHasFileUploadedValidUploadDirectory($uploadName, $uploadDir, $message = '')
Assert::nullOrIsFileUploadedNotOverwritingExistingFile($uploadName, $uploadDir, $message = '')
Assert::nullOrHasFileUploadedFileNameLength($uploadName, $size, $message = '')
Assert::nullOrIsFileUploadedImage($uploadName, $message = '')
Assert::nullOrIsFileUploadedMimeType($uploadName, array $allowedTypes, $message = '') 

Contribute

Contributions to the package are always welcome!

Support

Get in touch with me using one of the following means:

Authors

License

The code base is licensed under the MIT license.

统计信息

  • 总下载量: 65.8k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 10
  • 点击次数: 0
  • 依赖项目数: 7
  • 推荐数: 0

GitHub 信息

  • Stars: 10
  • Watchers: 0
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-01-29