You are browsing a version that is no longer maintained. |
Introduction
The Doctrine Inflector has static methods for inflecting text. The features include pluralization, singularization, converting between camelCase and under_score and capitalizing words.
All you need to use the Inflector is the Doctrine\Common\Inflector\Inflector
class.
Installation
You can install the Inflector with composer:
$ composer require doctrine/inflector
Here are the available methods that you can use:
Camelize
This method uses Classify and then converts the first character to lowercase:
echo Inflector::camelize('model_name'); // modelName
ucwords
Takes a string and capitalizes all of the words, like PHP's built-in ucwords function. This extends that behavior, however, by allowing the word delimiters to be configured, rather than only separating on whitespace.
Here is an example:
$string = 'top-o-the-morning to all_of_you!';
echo Inflector::ucwords($string); // Top-O-The-Morning To All_of_you!
echo Inflector::ucwords($string, '-_ '); // Top-O-The-Morning To All_Of_You!
Singularize
echo Inflector::singularize('browsers'); // browser
Rules
Customize the rules for pluralization and singularization:
Inflector::rules('plural', ['/^(inflect)or$/i' => '\1ables']);
Inflector::rules('plural', [
'rules' => ['/^(inflect)ors$/i' => '\1ables'],
'uninflected' => ['dontinflectme'],
'irregular' => ['red' => 'redlings']
]);
The arguments for the rules
method are:
$type
- The type of inflection, eitherplural
orsingular
$rules
- An array of rules to be added.$reset
- If true, will unset default inflections for all new rules that are being defined in $rules.
Reset
Clears Inflectors inflected value caches, and resets the inflection rules to the initial values.
Inflector::reset();