Assert::validArrayKey()
Assert::isNonEmptyList()
Assert::isNonEmptyMap()
@throws InvalidArgumentException
annotations to all methods that throw.@psalm-assert
for the list type to the isList
assertion.ResourceBundle
& SimpleXMLElement
now pass the isCountable
assertions.
They are countable, without implementing the Countable
interface.range
now has the proper variables.isList
and isMap
. As it is a valid form of both.
If a non empty variant is needed, use isNonEmptyList
or isNonEmptyMap
.@psalm-assert
annotations, that were 'side effect' assertions See:
3.6.0
. Which is enforced through a composer conflict.
If you don't use psalm, then this has no impact.Assert::uniqueValues()
Assert::unicodeLetters()
Assert::email()
@psalm-assert
annotations where appropriate.Assert::endsWith()
would not give the correct result when dealing with multibyte suffix.Assert::length(), minLength, maxLength, lengthBetween
would not give the correct result when dealing with multibyte characters.NOTE: These 2 changes may break your assertions if you relied on the fact that multibyte characters didn't behave correctly.
Assert::isTraversable()
in favor of Assert::isIterable()
trigger_error
. It is now annotated as well.Assert::ip()
Assert::ipv4()
Assert::ipv6()
Assert::notRegex()
Assert::interfaceExists()
Assert::isList()
Assert::isMap()
__toString()
Assert::minCount()
Assert::maxCount()
Assert::countBetween()
Assert::isCountable()
Assert::notWhitespaceOnly()
Assert::natural()
Assert::notContains()
Assert::isArrayAccessible()
Assert::isInstanceOfAny()
Assert::isIterable()
stringNotEmpty
will no longer report "0" is an empty stringAssert::isTraversable()
in favor of Assert::isIterable()
Assert::throws()
Assert::count()
Assert::reportInvalidArgument()
for custom subclassesAssert::object()
Assert::propertyExists()
Assert::propertyNotExists()
Assert::methodExists()
Assert::methodNotExists()
Assert::uuid()