PackageTrack
Sign in Get early access

yiisoft/strings

Yii Strings Helper

2.7.0 3.0M downloads/mo #2651 most downloaded on Packagist yiisoft/strings

What this package is like to depend on

Last release 9 months ago

23 Nov 2025

Release timing varies

gaps range from 3 weeks to 1.5 years

Nearly every release is documented

notes for 15 of 15 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

15 releases · first in 2020

1 release in the last 12 months

see the full history below

Release timeline

15 releases · Aug 2020 to Nov 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 15
  1. 2.7.0 23 Nov 2025
    Release notes
    • New #148, #149: Add NumericHelper::convertHumanReadableSizeToBytes() method (@mspirkov)
    • New #3: Add StringHelper::truncateWordsByLength() method to truncate text by character length while preserving word
      boundaries (@samdark)
    • Enh #150: Add PHP 8.5 support (@vjik)
    • Bug #119: Fix incorrect pluralization of words ending in "tion", "sion" and "gion" (@samdark)

    Full changelog

    Open source →
    Release notes
    • New #148, #149: Add NumericHelper::convertHumanReadableSizeToBytes() method (@mspirkov)
    • New #3: Add StringHelper::truncateWordsByLength() method to truncate text by character length while preserving word boundaries (@samdark)
    • Enh #150: Add PHP 8.5 support (@vjik)
    • Bug #119: Fix incorrect pluralization of words ending in "tion", "sion" and "gion" (@samdark)
    Open source →
  2. 2.6.0 09 Feb 2025
    Release notes
    • Chg #140: Bump minimal required PHP version to 8.1 and minor refactoring (@vjik)
    • Chg #143: Change PHP constraint in composer.json to ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 (@vjik)
    • Bug #138: Explicitly mark nullable parameters (@ferrumfist)
    • Bug #141: StringHelper::parsePath() for empty string returns path [''] instead of [] before (@vjik)
    • Bug #142: Check string on a valid UTF-8 in StringHelper methods: trim(), ltrim() and rtrim() (@vjik)
    Open source →
    Release notes
    • Chg #140: Bump minimal required PHP version to 8.1 and minor refactoring (@vjik)
    • Chg #143: Change PHP constraint in composer.json to ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 (@vjik)
    • Bug #138: Explicitly mark nullable parameters (@ferrumfist)
    • Bug #141: StringHelper::parsePath() for empty string returns path [''] instead of [] before (@vjik)
    • Bug #142: Check string on a valid UTF-8 in StringHelper methods: trim(), ltrim() and rtrim() (@vjik)
    Open source →
  3. 2.5.0 19 Jan 2025
    Release notes
    • New #137: Add StringHelper::matchAnyRegex() method as a facade for CombinedRegexp (@vjik)
    • Enh #128: Add more specific psalm type for result of StringHelper::base64UrlEncode() method (@vjik)
    Open source →
    Release notes
    • New #137: Add StringHelper::matchAnyRegex() method as a facade for CombinedRegexp (@vjik)
    • Enh #128: Add more specific psalm type for result of StringHelper::base64UrlEncode() method (@vjik)
    Open source →
  4. 2.4.0 22 Dec 2023
    Release notes
    • New #118: Add findBetween(), findBetweenFirst() and findBetweenLast() methods to StringHelper to retrieve
      a substring that lies between two strings (@salehhashemi1992)
    • Enh #121: Don't use regexp if there is no delimeter in the path in StringHelper::parsePath() (@viktorprogger)
    Open source →
    Release notes
    • New #118: Add findBetween(), findBetweenFirst() and findBetweenLast() methods to StringHelper to retrieve a substring that lies between two strings (@salehhashemi1992)
    • Enh #121: Don't use regexp if there is no delimeter in the path in StringHelper::parsePath() (@viktorprogger)
    Open source →
  5. 2.3.1 30 Oct 2023
    Release notes
    • Enh #117: WildcardPatters uses memoization and accelerates ~2 times on repeated calls (@viktorprogger)
    Open source →
    Release notes
    • Enh #117: WildcardPatters uses memoization and accelerates ~2 times on repeated calls (@viktorprogger)
    Open source →
  6. 2.3.0 23 Oct 2023
    Release notes
    • Enh #114: Add stringable object support to NumericHelper::normalize() (@vjik)
    Open source →
    Release notes
    • Enh #114: Add stringable object support to NumericHelper::normalize() (@vjik)
    Open source →
  7. 2.2.0 20 Sep 2023
    Release notes
    • New #102, #106: Add CombinedRegexp class (@xepozz, @vjik)
    • New #103: Add MemoizedCombinedRegexp decorator that caches results of CombinedRegexp (@xepozz)
    • New #104: Add methods StringHelper::trim(), StringHelper::ltrim(), StringHelper::rtrim() (@olegbaturin)
    • Enh #103: Raise required PHP version to ^8.0 (@xepozz)
    • Enh #106: Using fully-qualified function calls to improve performance (@vjik)
    • Enh #111: Minor refactoring (@Tigrov)
    • Enh #83: Make minor refactoring with Rector help (@vjik)
    • Enh #92: Add $strict parameter to Inflector::toSnakeCase() method (@arogachev)
    Open source →
    Release notes
    • New #102, #106: Add CombinedRegexp class (@xepozz, @vjik)
    • New #103: Add MemoizedCombinedRegexp decorator that caches results of CombinedRegexp (@xepozz)
    • New #104: Add methods StringHelper::trim(), StringHelper::ltrim(), StringHelper::rtrim() (@olegbaturin)
    • Enh #103: Raise required PHP version to ^8.0 (@xepozz)
    • Enh #106: Using fully-qualified function calls to improve performance (@vjik)
    • Enh #111: Minor refactoring (@Tigrov)
    • Enh #83: Make minor refactoring with Rector help (@vjik)
    • Enh #92: Add $strict parameter to Inflector::toSnakeCase() method (@arogachev)
    Open source →
  8. 2.1.2 27 Jul 2023
    Release notes
    • Bug #105: Fix incorrect split UTF-8 strings in StringHelper::split() method (@vjik)
    Open source →
    Release notes
    • Bug #105: Fix incorrect split UTF-8 strings in StringHelper::split() method (@vjik)
    Open source →
  9. 2.1.1 28 Apr 2023
    Release notes
    • Enh #85: Improve StringHelper::parsePath() method annotation (@vjik)
    Open source →
    Release notes
    • Enh #85: Improve StringHelper::parsePath() method annotation (@vjik)
    Open source →
  10. 2.1.0 20 Aug 2022
    Release notes
    • New #75: Add method Inflector::toSnakeCase() that convert word to "snake_case" (@soodssr)
    • New #81: Add StringHelper::parsePath() method (@arogachev, @vjik)
    Open source →
    Release notes
    • New #75: Add method Inflector::toSnakeCase() that convert word to "snake_case" (@soodssr)
    • New #81: Add StringHelper::parsePath() method (@arogachev, @vjik)
    Open source →
  11. 2.0.0 10 Feb 2021
    Release notes
    • Chg #67: Remove \Yiisoft\Strings\WildcardPattern::withoutEscape() (@samdark)
    • Chg #67: Remove \Yiisoft\Strings\WildcardPattern::withExactLeadingPeriod() (@samdark)
    • Enh #67: Add **, match anything including /, to \Yiisoft\Strings\WildcardPattern, remove withExactSlashes() and withEnding() (@samdark)
    • Enh #67: Allow specifying delimiters for * (@samdark)
    • Enh #67: Add \Yiisoft\Strings\WildcardPattern::isDynamic() (@samdark)
    • Enh #67: Add \Yiisoft\Strings\WildcardPattern::quote() (@samdark)
    Open source →
  12. 1.2.0 22 Jan 2021
    Release notes
    • Enh #62: Add method StringHelper::split() that split a string to array with non-empty lines (@vjik)
    • Enh #63: Add method NumericHelper::isInteger() that checks whether the given string is an integer number (@vjik)
    • Enh #64: Add support of a boolean values to NumericHelper::normalize() (@vjik)
    Open source →
  13. 1.1.0 13 Nov 2020
    Release notes
    • Enh #52: Allow turning off options in WildcardPattern (@vjik)
    • Enh #51: Add an option withEnding() to WildcardPattern for match ending of testing string (@vjik)
    • Bug #44: NumericHelper::toOrdinal() throws an error for numbers with fractional part (@vjik)
    Open source →
  14. 1.0.1 12 Oct 2020
    Release notes
    • Enh #40: Use str_starts_with() and str_ends_with() if available (@viktorprogger)
    • Bug #43: NumericHelper::normalize() throws an error for float or int values in PHP 8 (@vjik)
    Open source →
  15. 1.0.0 31 Aug 2020
    Release notes
    • Initial release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive