nilportugues / assert
一个简单优雅的断言和守卫方法库,用于输入验证。
1.0.2
2016-08-04 16:06 UTC
Requires (Dev)
- fabpot/php-cs-fixer: 1.9.*
- phpunit/phpunit: ~4.8
- satooshi/php-coveralls: ^1.0
This package is auto-updated.
Last update: 2024-09-06 09:27:50 UTC
README
尽管我知道还有其他我不满意的断言库,所以我写了自己的。
使用方法
断言库非常直观。将输入传递给方法调用,如果它不满足要求,它将正常运行或抛出 \Exception
。
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!'; }
断言方法
所有断言方法都可以用于不同的数据类型(整数、双精度、对象等)。
如果您尝试验证意外数据类型的数据,将抛出异常,使断言按预期失败。
大多数方法可以使用“nullOr”前缀而不是“is”前缀来调用。例如
Assert::nullOrIsLowercase('lowercase'); //OK Assert::isLowercase(null); //raises Exception
断言列表
所有方法都允许指定自定义的 $message
值。如果没有传入,则使用库定义的默认值。
那些接受 callable
作为参数的,期望在可调用内部使用 Assert 语句。
泛型断言
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 = '');
字符串断言
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 = '')
整数断言
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 = '')
浮点数和双精度断言
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 = '')
数组集合断言
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 = '')
日期时间断言
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 = '')
对象断言
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 = '')
文件上传断言
文件上传断言检查全局变量 $_FILES
。
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 = '')
贡献
欢迎对包做出贡献!
支持
您可以通过以下方式之一与我联系
- 通过以下邮箱联系我 contact@nilportugues.com
- 通过 问题 联系
作者
许可证
代码库受 MIT 许可证 授权。