respect / string-formatter
A powerful and flexible way of formatting and transforming strings
Installs: 3 390
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 2
Open Issues: 2
pkg:composer/respect/string-formatter
Requires
- php: ^8.5
- respect/stringifier: ^3.0
- symfony/polyfill-mbstring: ^1.33
- symfony/translation-contracts: ^3.6
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^12.5
- respect/coding-standard: ^5.0
- symfony/translation: ^6.0|^7.0
Suggests
- symfony/translation: For translation support in TransModifier (^6.0|^7.0)
README
Respect\StringFormatter
A powerful and flexible PHP library for formatting and transforming strings.
Installation
composer require respect/string-formatter
Usage
You can use individual formatters directly or chain multiple formatters together using the FormatterBuilder:
echo f::create() ->mask('7-12') ->pattern('#### #### #### ####') ->format('1234123412341234'); // Output: 1234 12** **** 1234
Using Formatters as Modifiers
The PlaceholderFormatter allows you to use any formatter as a modifier within templates:
use Respect\StringFormatter\PlaceholderFormatter; $formatter = new PlaceholderFormatter([ 'date' => '2024-01-15', 'amount' => '1234.56', 'phone' => '1234567890', ]); echo $formatter->format('Date: {{date|date:Y/m/d}}, Amount: ${{amount|number:2}}, Phone: {{phone|pattern:(###) ###-####}}'); // Output: Date: 2024/01/15, Amount: $1,234.56, Phone: (123) 456-7890
See the PlaceholderFormatter documentation and FormatterModifier documentation for more details.
Formatters
| Formatter | Description |
|---|---|
| AreaFormatter | Metric area promotion (mm², cm², m², a, ha, km²) |
| CreditCardFormatter | Credit card number formatting with auto-detection |
| DateFormatter | Date and time formatting with flexible parsing |
| ImperialAreaFormatter | Imperial area promotion (in², ft², yd², ac, mi²) |
| ImperialLengthFormatter | Imperial length promotion (in, ft, yd, mi) |
| ImperialMassFormatter | Imperial mass promotion (oz, lb, st, ton) |
| LowercaseFormatter | Convert string to lowercase |
| MaskFormatter | Range-based string masking with Unicode support |
| MassFormatter | Metric mass promotion (mg, g, kg, t) |
| MetricFormatter | Metric length promotion (mm, cm, m, km) |
| NumberFormatter | Number formatting with thousands and decimal separators |
| PatternFormatter | Pattern-based string filtering with placeholders |
| PlaceholderFormatter | Template interpolation with placeholder replacement |
| SecureCreditCardFormatter | Masked credit card formatting for secure display |
| TimeFormatter | Time promotion (mil, c, dec, y, mo, w, d, h, min, s, ms, us, ns) |
| TrimFormatter | Remove whitespace from string edges |
| UppercaseFormatter | Convert string to uppercase |
Contributing
Please see our Contributing Guide for information on how to contribute to this project.
License
This project is licensed under the ISC License - see the LICENSE file for details.