5.9 KiB
5.9 KiB
Changelog
UNRELEASED
1.11.0
Added
- Added explicit (non magic)
allNullOr*methods, with@psalm-assertannotations, for better Psalm support.
Changed
- Trait methods will now check the assertion themselves, instead of using
__callStatic isListwill now deal correctly with (modified) lists that containNaNreportInvalidArgumentnow has a return type ofnever.
Removed
- Removed
symfony/polyfill-ctypeas a dependency, and requireext-cytpeinstead.- You can still require the
symfony/polyfill-ctypein your project if you need it, as it providesext-ctype
- You can still require the
1.10.0
Added
- On invalid assertion, we throw a
Webmozart\Assert\InvalidArgumentException - Added
Assert::positiveInteger()
Changed
- Using a trait with real implementations of
all*()andnullOr*()methods to improve psalm compatibility.
Removed
- Support for PHP <7.2
1.9.1
Fixed
- provisional support for PHP 8.0
1.9.0
- added better Psalm support for
all*&nullOr*methods - These methods are now understood by Psalm through a mixin. You may need a newer version of Psalm in order to use this
- added
@psalm-pureannotation toAssert::notFalse() - added more
@psalm-assertannotations where appropriate
Changed
- the
all*&nullOr*methods are now declared on an interface, instead of@methodannotations. This interface is linked to theAssertclass with a@mixinannotation. Most IDE's have supported this for a long time, and you should not lose any autocompletion capabilities. PHPStan has supported this since version0.12.20. This package is marked incompatible (with a composer conflict) with phpstan version prior to that. If you do not use PHPStan than this does not matter.
1.8.0
Added
- added
Assert::notStartsWith() - added
Assert::notEndsWith() - added
Assert::inArray() - added
@psalm-pureannotations to pure assertions
Fixed
- Exception messages of comparisons between
DateTime(Immutable)objects now display their date & time. - Custom Exception messages for
Assert::count()now use the values to render the exception message.
1.7.0 (2020-02-14)
Added
- added
Assert::notFalse() - added
Assert::isAOf() - added
Assert::isAnyOf() - added
Assert::isNotA()
1.6.0 (2019-11-24)
Added
- added
Assert::validArrayKey() - added
Assert::isNonEmptyList() - added
Assert::isNonEmptyMap() - added
@throws InvalidArgumentExceptionannotations to all methods that throw. - added
@psalm-assertfor the list type to theisListassertion.
Fixed
ResourceBundle&SimpleXMLElementnow pass theisCountableassertions. They are countable, without implementing theCountableinterface.- The doc block of
rangenow has the proper variables. - An empty array will now pass
isListandisMap. As it is a valid form of both. If a non-empty variant is needed, useisNonEmptyListorisNonEmptyMap.
Changed
- Removed some
@psalm-assertannotations, that were 'side effect' assertions See: - If you use Psalm, the minimum version needed is
3.6.0. Which is enforced through a composer conflict. If you don't use Psalm, then this has no impact.
1.5.0 (2019-08-24)
Added
- added
Assert::uniqueValues() - added
Assert::unicodeLetters() - added:
Assert::email() - added support for Psalm, by adding
@psalm-assertannotations where appropriate.
Fixed
Assert::endsWith()would not give the correct result when dealing with a multibyte suffix.Assert::length(), minLength, maxLength, lengthBetweenwould 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.
Changed
- The names of some variables have been updated to better reflect what they are.
- All function calls are now in their FQN form, slightly increasing performance.
- Tests are now properly ran against HHVM-3.30 and PHP nightly.
Deprecation
- deprecated
Assert::isTraversable()in favor ofAssert::isIterable()- This was already done in 1.3.0, but it was only done through a silenced
trigger_error. It is now annotated as well.
- This was already done in 1.3.0, but it was only done through a silenced
1.4.0 (2018-12-25)
Added
- added
Assert::ip() - added
Assert::ipv4() - added
Assert::ipv6() - added
Assert::notRegex() - added
Assert::interfaceExists() - added
Assert::isList() - added
Assert::isMap() - added polyfill for ctype
Fixed
- Special case when comparing objects implementing
__toString()
1.3.0 (2018-01-29)
Added
- added
Assert::minCount() - added
Assert::maxCount() - added
Assert::countBetween() - added
Assert::isCountable() - added
Assert::notWhitespaceOnly() - added
Assert::natural() - added
Assert::notContains() - added
Assert::isArrayAccessible() - added
Assert::isInstanceOfAny() - added
Assert::isIterable()
Fixed
stringNotEmptywill no longer report "0" is an empty string
Deprecation
- deprecated
Assert::isTraversable()in favor ofAssert::isIterable()
1.2.0 (2016-11-23)
- added
Assert::throws() - added
Assert::count() - added extension point
Assert::reportInvalidArgument()for custom subclasses
1.1.0 (2016-08-09)
- added
Assert::object() - added
Assert::propertyExists() - added
Assert::propertyNotExists() - added
Assert::methodExists() - added
Assert::methodNotExists() - added
Assert::uuid()
1.0.2 (2015-08-24)
- integrated Style CI
- add tests for minimum package dependencies on Travis CI
1.0.1 (2015-05-12)
- added support for PHP 5.3.3
1.0.0 (2015-05-12)
- first stable release
1.0.0-beta (2015-03-19)
- first beta release