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
You can install the Inflector with composer:
$ composer require doctrine/inflector
Here are the available methods that you can use:
1 echo Inflector::tableize('ModelName'); // model_name
1 echo Inflector::classify('model_name'); // ModelName
This method uses Classify and then converts the first character to lowercase:
1 echo Inflector::camelize('model_name'); // modelName
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:
Returns a word in plural form.
1 echo Inflector::pluralize('browser'); // browsers
1 echo Inflector::singularize('browsers'); // browser
Customize the rules for pluralization and singularization:
The arguments for the
rules method are:
$type- The type of inflection, either
$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.
Clears Inflectors inflected value caches, and resets the inflection rules to the initial values.
You can easily use the Inflector to create a slug from a string of text by using the tableize method and replacing underscores with hyphens: