Pluralize and singularize English words.
Inflector pluralizes and singularizes English nouns. Used by CakePHP's naming conventions throughout the framework.
array
array
array
array
array
array
Returns the given underscored_word_group as a Human Readable Word Group. (Underscores are replaced by spaces and capitalized following words.)
Clears Inflectors inflected value caches. And resets the inflection rules to the initial values.
Returns a string with all spaces converted to underscores (by default), accented characters converted to non-accented characters, and non word characters removed.
_cache( string $type , string $key , string $value false )
Cache inflected values, and return if already available
$type
$key
$value
optional false camelize( string $lowerCaseAndUnderscoredWord )
Returns the given lower_case_and_underscored_word as a CamelCased word.
$lowerCaseAndUnderscoredWord
classify( string $tableName )
Returns Cake model class name ("Person" for the database table "people".) for given database table.
$tableName
humanize( string $lowerCaseAndUnderscoredWord )
Returns the given underscored_word_group as a Human Readable Word Group. (Underscores are replaced by spaces and capitalized following words.)
$lowerCaseAndUnderscoredWord
pluralize( string $word )
Return $word in plural form.
$word
reset( )
Clears Inflectors inflected value caches. And resets the inflection rules to the initial values.
rules( string $type , array $rules , boolean $reset false )
Adds custom inflection $rules, of either 'plural', 'singular' or 'transliteration' $type.
Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables')); Inflector::rules('plural', array( 'rules' => array('/^(inflect)ors$/i' => '\1ables'), 'uninflected' => array('dontinflectme'), 'irregular' => array('red' => 'redlings') )); Inflector::rules('transliteration', array('/å/' => 'aa'));
$type
$rules
$reset
optional false If true, will unset default inflections for all new rules that are being defined in $rules.
singularize( string $word )
Return $word in singular form.
$word
slug( string $string , string $replacement '_' )
Returns a string with all spaces converted to underscores (by default), accented characters converted to non-accented characters, and non word characters removed.
$string
$replacement
optional '_' tableize( string $className )
Returns corresponding table name for given model $className. ("people" for the model class "Person").
$className
underscore( string $camelCasedWord )
Returns the given camelCasedWord as an underscored_word.
$camelCasedWord
variable( string $string )
Returns camelBacked version of an underscored string.
$string
protected static array
The initial state of Inflector so reset() works.
array()
protected static array
Plural inflector rules
array( 'rules' => array( '/(s)tatus$/i' => '\1tatuses', '/(quiz)$/i' => '\1zes', '/^(ox)$/i' => '\1\2en', '/([m|l])ouse$/i' => '\1ice', '/(matr|vert|ind)(ix|ex)$/i' => '\1ices', '/(x|ch|ss|sh)$/i' => '\1es', '/([^aeiouy]|qu)y$/i' => '\1ies', '/(hive)$/i' => '\1s', '/(?:([^f])fe|([lre])f)$/i' => '\1\2ves', '/sis$/i' => 'ses', '/([ti])um$/i' => '\1a', '/(p)erson$/i' => '\1eople', '/(?<!u)(m)an$/i' => '\1en', '/(c)hild$/i' => '\1hildren', '/(buffal|tomat)o$/i' => '\1\2oes', '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin)us$/i' => '\1i', '/us$/i' => 'uses', '/(alias)$/i' => '\1es', '/(ax|cris|test)is$/i' => '\1es', '/s$/' => 's', '/^$/' => '', '/$/' => 's', ), 'uninflected' => array( '.*[nrlm]ese', '.*data', '.*deer', '.*fish', '.*measles', '.*ois', '.*pox', '.*sheep', 'people', 'feedback', 'stadia' ), 'irregular' => array( 'atlas' => 'atlases', 'beef' => 'beefs', 'brief' => 'briefs', 'brother' => 'brothers', 'cafe' => 'cafes', 'child' => 'children', 'cookie' => 'cookies', 'corpus' => 'corpuses', 'cow' => 'cows', 'criterion' => 'criteria', 'ganglion' => 'ganglions', 'genie' => 'genies', 'genus' => 'genera', 'graffito' => 'graffiti', 'hoof' => 'hoofs', 'loaf' => 'loaves', 'man' => 'men', 'money' => 'monies', 'mongoose' => 'mongooses', 'move' => 'moves', 'mythos' => 'mythoi', 'niche' => 'niches', 'numen' => 'numina', 'occiput' => 'occiputs', 'octopus' => 'octopuses', 'opus' => 'opuses', 'ox' => 'oxen', 'penis' => 'penises', 'person' => 'people', 'sex' => 'sexes', 'soliloquy' => 'soliloquies', 'testis' => 'testes', 'trilby' => 'trilbys', 'turf' => 'turfs', 'potato' => 'potatoes', 'hero' => 'heroes', 'tooth' => 'teeth', 'goose' => 'geese', 'foot' => 'feet', 'sieve' => 'sieves' ) )
protected static array
Singular inflector rules
array( 'rules' => array( '/(s)tatuses$/i' => '\1\2tatus', '/^(.*)(menu)s$/i' => '\1\2', '/(quiz)zes$/i' => '\\1', '/(matr)ices$/i' => '\1ix', '/(vert|ind)ices$/i' => '\1ex', '/^(ox)en/i' => '\1', '/(alias)(es)*$/i' => '\1', '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us', '/([ftw]ax)es/i' => '\1', '/(cris|ax|test)es$/i' => '\1is', '/(shoe)s$/i' => '\1', '/(o)es$/i' => '\1', '/ouses$/' => 'ouse', '/([^a])uses$/' => '\1us', '/([m|l])ice$/i' => '\1ouse', '/(x|ch|ss|sh)es$/i' => '\1', '/(m)ovies$/i' => '\1\2ovie', '/(s)eries$/i' => '\1\2eries', '/([^aeiouy]|qu)ies$/i' => '\1y', '/(tive)s$/i' => '\1', '/(hive)s$/i' => '\1', '/(drive)s$/i' => '\1', '/([le])ves$/i' => '\1f', '/([^rfoa])ves$/i' => '\1fe', '/(^analy)ses$/i' => '\1sis', '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis', '/([ti])a$/i' => '\1um', '/(p)eople$/i' => '\1\2erson', '/(m)en$/i' => '\1an', '/(c)hildren$/i' => '\1\2hild', '/(n)ews$/i' => '\1\2ews', '/eaus$/' => 'eau', '/^(.*us)$/' => '\\1', '/s$/i' => '' ), 'uninflected' => array( '.*data', '.*[nrlm]ese', '.*deer', '.*fish', '.*measles', '.*ois', '.*pox', '.*sheep', '.*ss', 'feedback' ), 'irregular' => array( 'foes' => 'foe', ) )
protected static array
Default map of accented and special characters to ASCII characters
array( '/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A', '/Æ|Ǽ/' => 'AE', '/Ä/' => 'Ae', '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', '/Ð|Ď|Đ/' => 'D', '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E', '/Ĝ|Ğ|Ġ|Ģ|Ґ/' => 'G', '/Ĥ|Ħ/' => 'H', '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|І/' => 'I', '/IJ/' => 'IJ', '/Ĵ/' => 'J', '/Ķ/' => 'K', '/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L', '/Ñ|Ń|Ņ|Ň/' => 'N', '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O', '/Œ/' => 'OE', '/Ö/' => 'Oe', '/Ŕ|Ŗ|Ř/' => 'R', '/Ś|Ŝ|Ş|Ș|Š/' => 'S', '/ẞ/' => 'SS', '/Ţ|Ț|Ť|Ŧ/' => 'T', '/Þ/' => 'TH', '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U', '/Ü/' => 'Ue', '/Ŵ/' => 'W', '/Ý|Ÿ|Ŷ/' => 'Y', '/Є/' => 'Ye', '/Ї/' => 'Yi', '/Ź|Ż|Ž/' => 'Z', '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a', '/ä|æ|ǽ/' => 'ae', '/ç|ć|ĉ|ċ|č/' => 'c', '/ð|ď|đ/' => 'd', '/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e', '/ƒ/' => 'f', '/ĝ|ğ|ġ|ģ|ґ/' => 'g', '/ĥ|ħ/' => 'h', '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|і/' => 'i', '/ij/' => 'ij', '/ĵ/' => 'j', '/ķ/' => 'k', '/ĺ|ļ|ľ|ŀ|ł/' => 'l', '/ñ|ń|ņ|ň|ʼn/' => 'n', '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o', '/ö|œ/' => 'oe', '/ŕ|ŗ|ř/' => 'r', '/ś|ŝ|ş|ș|š|ſ/' => 's', '/ß/' => 'ss', '/ţ|ț|ť|ŧ/' => 't', '/þ/' => 'th', '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u', '/ü/' => 'ue', '/ŵ/' => 'w', '/ý|ÿ|ŷ/' => 'y', '/є/' => 'ye', '/ї/' => 'yi', '/ź|ż|ž/' => 'z', )
protected static array
Words that should not be inflected
array( 'Amoyese', 'bison', 'Borghese', 'bream', 'breeches', 'britches', 'buffalo', 'cantus', 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'Congoese', 'contretemps', 'corps', 'debris', 'diabetes', 'djinn', 'eland', 'elk', 'equipment', 'Faroese', 'flounder', 'Foochowese', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'graffiti', 'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', 'jackanapes', 'Kiplingese', 'Kongoese', 'Lucchese', 'mackerel', 'Maltese', '.*?media', 'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', 'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'pliers', 'Portuguese', 'proceedings', 'rabies', 'research', 'rice', 'rhinoceros', 'salmon', 'Sarawakese', 'scissors', 'sea[- ]bass', 'series', 'Shavese', 'shears', 'siemens', 'species', 'swine', 'testes', 'trousers', 'trout', 'tuna', 'Vermontese', 'Wenchowese', 'whiting', 'wildebeest', 'Yengeese' )
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-Inflector.html