Inflector
- class
Inflector
- The Inflector class takes a string and can manipulate it to handle wordvariations such as pluralizations or camelizing and is normally accessedstatically. Example:
Inflector::pluralize('example')
returns “examples”.
Quick summary of the Inflector built-in methods and the results they outputwhen provided a multi-word argument:
Creating Plural & Singular Forms
- static
Cake\Utility\Inflector::
singularize
($singular) - Both
pluralize
andsingularize()
work on most English nouns. If you needto support other languages, you can use tocustomize the rules used:
Note
pluralize()
may not always correctly convert a noun that is already in its plural form.
- // Person
- echo Inflector::singularize('People');
singularize()
may not always correctly convert a noun that is already in its singular form.
- static
Cake\Utility\Inflector::
camelize
($underscored) - static
Cake\Utility\Inflector::
underscore
($camelCase) - These methods are useful when creating class names, or property names:
It should be noted that underscore will only convert camelCase formatted words.Words that contains spaces will be lower-cased, but will not contain anunderscore.
Creating Human Readable Forms
- static
Cake\Utility\Inflector::
humanize
($underscored) - This method is useful when converting underscored forms into “Title Case” formsfor human readable values:
- // Apple Pie
- Inflector::humanize('apple_pie');
- static
Cake\Utility\Inflector::
classify
($underscored) - static
Cake\Utility\Inflector::
tableize
($camelCase) - When generating code, or using CakePHP’s conventions you may need to inflecttable names or class names:
Creating Variable Names
- static
Cake\Utility\Inflector::
variable
($underscored) - Variable names are often useful when doing meta-programming tasks that involvegenerating code or doing work based on conventions:
- // applePie
- Inflector::variable('apple_pie');
- static
Cake\Utility\Inflector::
slug
($word, $replacement = '-') - Slug converts special characters into latin versions and converting unmatchedcharacters and spaces to dashes. The slug method expects UTF-8 encoding:
Note
Inflection Configuration
CakePHP’s naming conventions can be really nice - you can name your databasetable bigboxes
, your model BigBoxes
, your controllerBigBoxesController
, and everything just works together automatically. Theway CakePHP knows how to tie things together is by _inflecting the wordsbetween their singular and plural forms.
There are occasions (especially for our non-English speaking friends) where youmay run into situations where CakePHP’s inflector (the class that pluralizes,singularizes, camelCases, and under_scores) might not work as you’d like. IfCakePHP won’t recognize your Foci or Fish, you can tell CakePHP about yourspecial cases.
- static
Cake\Utility\Inflector::
rules
($type, $rules, $reset = false) - Define new inflection and transliteration rules for Inflector to use. Often,this method is used in your config/bootstrap.php:
- Inflector::rules('singular', ['/^(bil)er$/i' => '\1', '/^(inflec|contribu)tors$/i' => '\1ta']);
- Inflector::rules('uninflected', ['singulars']);
The supplied rules will be merged into the respective inflection sets defined inCake/Utility/Inflector
, with the added rules taking precedence over the corerules. You can use to clear rules and restore theoriginal Inflector state.