Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Utils Laravel Package

nette/utils

Handy PHP utility classes from Nette: strings, arrays, JSON, validators, safe HTML, and more. Lightweight, well-tested helpers that complement any framework or plain PHP app, making common tasks cleaner, safer, and faster to write.

View on GitHub
Deep Wiki
Context7
v4.1.3

A maintenance release focused on code quality: stricter types, better PHPDoc annotations, and PHPStan now runs as a mandatory CI check. No breaking changes.

v4.1.1
  • Html::addText() accepts int|null for back compatibility [Closes #332][Closes #333]
v4.1.0
  • requires PHP 8.2
  • DateTime: strict behavior (BC break)
  • Strings::webalize() requires INTL extension
  • StaticClass: is not overriding __callStatic()
v4.0.10
  • added Type::with()
  • added Type::fromValue()
  • added Helpers::splitClassName()
  • added Iterables::repeatable()
  • Finder: is_file() does not work with symlinks under Windows
v4.0.9

support for PHP 8.5

v4.0.8
  • support for PHP 8.5
  • Strings::trim() trims Line Separator and Ideographic Space (#326)
  • DateTime: fixed parsing 'ago' modifier #327
  • DateTime::relativeToSeconds() checks for error
  • optimized global function calls
v4.0.7
  • DateTime: constructor and modify() correctly handle the relative time even if the daylight saving time is changed
  • DateTime: added static method relativeToSeconds() for converting relative time string to seconds
  • DateTime: triggers a warning when time overflow occurs
v4.0.6
  • Image: catches all errors during saving
  • added Helpers::IsWindows
  • added ShouldNotHappenException
  • added FileSystem::resolvePath() #308
  • tests: improved descriptions
  • exception: use natural explanatory style
v4.0.5
  • Strings::matchAll(): added option 'lazy'
  • added Arrays::mapWithKeys() & Iterables::mapWithKeys()
  • added Iterables::memoize() & toIterator()
  • Image: GD extension detection added
  • support for PHP 8.4
v4.0.4
  • added Iterables
  • added Arrays::firstKey(), lastKey()
  • added Arrays::filter()
  • Arrays::first() & last(): added parameter $else
  • Arrays::first() & last(): added parameter $predicate #305
  • added Image::getSupportedTypes()
  • Arrays: improved phpDoc
  • utilizes Random\Randomizer in PHP 8.3
  • StaticClass: fixed compatibility with PHP 8.3.2
  • Strings::trim() trims unicode spaces and ZWSP (#304)
v4.0.3
  • added ImageColor, replaces Image::rgb()
  • added Image::rectangleWH(), filledRectangleWH(), calculateTextBox()
  • Type: fixed resolving of 'static' nette/di#295
v4.0.2
  • Strings::length() uses mbstring, iconv and then utf8_decode #299
  • Finder: getType() replaced with isDir() / isFile()
  • StaticClass: constructor is private nette/di#292
  • Arrays: add generic type declaration for some(), every() and map() (#298)
  • FileSystem: can be used as instance
v3.2.10
  • support for PHP 8.3
  • Callback::unwrap() returns correct class name for private methods
  • improved type annotations (#290)
  • Reflection: getParameterType(), getReturnType() and getPropertyType() marked as deprecated
v4.0.1
  • support for PHP 8.3
  • added Image::isTypeSupported()
  • added enum ImageType
  • Finder: collect() returns list
  • Finder: improved exception when directory is missing
  • Finder: default mask is '*'
  • improved type annotations (#290)
  • Callback::unwrap() returns correct class name for private methods
v4.0.0
  • uses PHP 8 featurs
  • includes a completely rewritten Finder
  • PascalCase constants
  • Strings: added support for UTF-8 offsets in regexp
  • Translator: improved interface, accepts and returns string|Stringable [Closes #231]
  • ArrayHash & ArrayList: support iteration with reference (#289)

new methods:

  • Nette\Utils\Json::decodeFile() reads JSON from a file
  • Nette\Utils\FileSystem::unixSlashes() & platformSlashes() converts slashes to Unix slashes
  • Nette\Utils\Strings::ord(), unixNewLines() & platformNewLines()
  • Nette\Utils\Helpers::compare() compare using the operator

new parameters:

  • Nette\Utils\Strings::split() added parameter $limit
  • Nette\Utils\Strings::replace() added parameters $captureOffset, $unmatchedAsNull
  • Nette\Utils\Strings, Nette\Utils\Arrays, Nette\Utils\Json: flags replaced with parameters

removed

  • Reflection: removed obsolete getReturnType(), getParameterType(), getPropertyType() (BC break)
v3.2.9
  • Type: supports Disjunctive Normal Form Types
  • Validators: added isTypeDeclaration(), isBuiltinType(), isClassKeyword()
  • used PhpStorm Language attribute (#277)
  • Types::isSingle() -> isSimple()
v3.2.8
  • support for PHP 8.2
  • tests: deprecated GD changed to PNG
  • Image::clone() uses PNG format because GD2 is disabled since libgd 2.3.3
  • Image::detectTypeFromFile & detectTypeFromString returns width & height
  • Image: added extensionToType()
  • private constants are PascalCase
  • ObjectHelpers: fixed parsing static @methods #278
v3.2.7
  • SmartObject: supports property deprecation
  • Image: added support for AVIF
  • Image: distinguishes between fatal errors and warnings
  • Validators: isNumeric support string number '1.' (#276)
  • Json: accepts native JSON_* constants #275
  • Arrays::isList() uses array_is_list() is PHP 8.1

Deprecated properties are written as [@property-deprecated](https://github.com/property-deprecated), no standard here exists. PhpStorm and static analysis tools do not see them, which is the intention.

v3.2.6
  • FileSystem: messages use normalized paths (#250)
  • Strings::indexOf() fixed empty $haystack and negative $nth #271
  • Strings: improved things around flags
  • Callback::unwrap can return non-callable #270
  • used @return never
  • added Helpers::clamp()
  • Validators::isPhpIdentifier(): Value is always string. (#268)
  • Reflection::expandClassName() recognizes 'parent'
  • added Reflection::isClassKeyword(), Type::isClassKeyword()
v3.2.5
  • support for PHP 8.1
  • added Type
  • Type, Reflection: supports intersection types
  • Reflection::getReturnType() & Type::fromReflection() return tentative type in PHP 8.1
  • Reflection::getUseStatements supports enums
  • Reflection: added 'never' built-in type
  • Reflection: getReturnTypes(), getParameterTypes(), getPropertyTypes() are deprecated
  • improved phpDoc, used generics
  • added ArrayList::from()
v3.1.6
  • added Type
  • improved phpDoc, used generics
  • Strings::replace: default replacement is empty string #241
  • Reflection: getReturnTypes(), getParameterTypes(), getPropertyTypes() are deprecated
v3.2.3
  • FileSystem: Add method makeWritable() (#244)
  • Paginator: add firstItemOnPage & lastItemOnPage #262 (#263)
  • ObjectHelpers: improved error messages, added scope
v3.2.2
  • Arrays: added wrap() method (#180)
  • Arrays::insertAfter() & insertBefore() fixed when $key is null
  • DateTime::fromParts() is non-locale aware #248
  • compatibility: improved code hinting
v3.2.1
  • added Arrays::first(), last() & contains()
  • added Array::invoke() & invokeMethod()
  • Arrays: some methods accepts iterable
  • Strings::toAscii() fixed to correctly convert german umlauts (BC break) (#240)
  • Strings::replace: default replacement is empty string #241

For the details you can have a look at the diff.

v3.2.0
  • requires PHP 7.2
  • Added Nette\Utils\Floats class for comparing floats (#221)
  • Arrays: searchKey() silently renamed to getKeyOffset()
  • Callback::closure() triggers deprecation notice
  • Image: added detectTypeFromFile() and detectTypeFromString()
  • Reflection::toString() appends () after function/method name
  • Strings::toAscii - triggers E_USER_NOTICE when ext-intl is not present
  • renamed Nette\Localization\ITranslator -> Translator, added class alias
  • renamed Nette\Utils\IHtmlString -> Nette\HtmlStringable, added class alias
v3.1.4
  • Reflection: added getReturnTypes(), getParameterTypes() and getPropertyTypes()
  • Reflection::getReturnType(), getParameterType() and getPropertyType() throws exception on union types
  • Image::fromString() throws UnknownImageFileException when file type is unknown

For the details you can have a look at the diff.

v3.0.4
  • compatible with PHP 8.0
  • Image::fromString() throws UnknownImageFileException when file type is unknown
  • Image: better processing and checking dimensions in strings #217
  • DateTime::from(null) fixed #211

For the details you can have a look at the diff.

v2.5.5
  • compatible with PHP 8.0
  • Image: better processing and checking dimensions in strings #217
  • Html::getText() decodes '

For the details you can have a look at the diff.

v3.1.3
  • compatible with PHP 8.0
  • Arrays::renameKey() fixed incorrect replacement for existing new keys #230
  • Arrays::renameKey() returns true if $oldKey was found
  • Arrays: added toKey()
  • improved PHP doc
  • Reflection: fixed parseUseStatements for PHP 8 #229
  • SmartObject: better support for $onEvent with typehint
  • Image: added new PHP functions
  • Strings: ICONV_IMPL can be quoted
  • FileSystem: Added $mode to all exceptions.
  • Image: compatibility with PHP 8.0
  • Reflection: added PHP 8 type 'static'
  • Reflection::isBuiltinType() added PHP 8 types mixed & false
  • Reflection::getReturnType() fixed for functions
  • SmartObject: removed return void

For the details you can have a look at the diff.

v3.1.2
  • Image: better processing and checking dimensions in strings #217
  • added Reflection::getMethodDeclaringMethod()
  • Strings: throws exception when iconv is missing #215
  • Strings::toAscii() removes non-ascii characters when iconv is not supported #216

For the details you can have a look at the diff.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport