BaseInflector
API reference › yii › helpers › BaseInflector
1 subclass
BaseInflector provides concrete implementation for Inflector.
Do not use BaseInflector. Use Inflector instead.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$plurals static | array | The rules for converting a word into its plural form. Default: ['/([nrlm]ese|. | BaseInflector |
$singulars static | array | The rules for converting a word into its singular form. Default: ['/([nrlm]ese|. | BaseInflector |
$specials static | array | The special rules for converting a word between its plural form and singular form. Default: ['atlas' => 'atlases',. | BaseInflector |
$transliteration static | array | Fallback map for transliteration used by transliterate() when intl isn’t available. Default: ['À' => 'A',. | BaseInflector |
$transliterator static | mixed | Either a Transliterator, or a string from which a Transliterator can be built for transliteration. Default: self::TRANSLITERATE_LOOSE. | BaseInflector |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
camel2id() static | Converts a CamelCase name into an ID in lowercase. | BaseInflector |
camel2words() static | Converts a CamelCase name into space-separated words. | BaseInflector |
camelize() static | Returns given word as CamelCased. | BaseInflector |
classify() static | Converts a table name to its class name. | BaseInflector |
humanize() static | Returns a human-readable string from $word. | BaseInflector |
id2camel() static | Converts an ID into a CamelCase name. | BaseInflector |
ordinalize() static | Converts number to its ordinal English form. For example, converts 13 to 13th, 2 to 2nd . | BaseInflector |
pluralize() static | Converts a word to its plural form. | BaseInflector |
sentence() static | Converts a list of words into a sentence. | BaseInflector |
singularize() static | Returns the singular of the $word. | BaseInflector |
slug() static | Returns a string with all spaces converted to given replacement, non word characters removed and the rest of characters transliterated. | BaseInflector |
tableize() static | Converts a class name to its table name (pluralized) naming conventions. | BaseInflector |
titleize() static | Converts an underscored or CamelCase word into a English sentence. | BaseInflector |
transliterate() static | Returns transliterated version of a string. | BaseInflector |
underscore() static | Converts any “CamelCased” into an “underscored_word”. | BaseInflector |
variablize() static | Same as camelize but first char is in lowercase. | BaseInflector |
hasIntl() protected static | BaseInflector |
Constants
Section titled “Constants”| Constant | Value | Description | Defined by |
|---|---|---|---|
TRANSLITERATE_STRICT | 'Any-Latin; NFKD' | Shortcut for Any-Latin; NFKD transliteration rule. Available since 2.0.7. | BaseInflector |
TRANSLITERATE_MEDIUM | 'Any-Latin; Latin-ASCII' | Shortcut for Any-Latin; Latin-ASCII transliteration rule. Available since 2.0.7. | BaseInflector |
TRANSLITERATE_LOOSE | 'Any-Latin; Latin-ASCII; [\ | Shortcut for Any-Latin; Latin-ASCII; [\ transliteration rule. Available since 2.0.7. | BaseInflector |
Property details
Section titled “Property details”$plurals
Section titled “$plurals ”public static array $plurals = ['/([nrlm]ese|deer|fish|sheep|measles|ois|pox|media)$/i' => '\1', '/^(sea[-]bass)$/i' => '\1', '/(m)ove$/i' => '\1oves', '/(f)oot$/i' => '\1eet', '/(h)uman$/i' => '\1umans', '/(s)tatus$/i' => '\1tatuses', '/(s)taff$/i' => '\1taff', '/(t)ooth$/i' => '\1eeth', '/(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|([lr])f)$/i' => '\1\2ves', '/sis$/i' => 'ses', '/([ti])um$/i' => '\1a', '/(p)erson$/i' => '\1eople', '/(m)an$/i' => '\1en', '/(c)hild$/i' => '\1hildren', '/(buffal|tomat|potat|ech|her|vet)o$/i' => '\1oes', '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i', '/us$/i' => 'uses', '/(alias)$/i' => '\1es', '/(ax|cris|test)is$/i' => '\1es', '/(currenc)y$/' => '\1ies', '/s$/' => 's', '/^$/' => '', '/$/' => 's']The rules for converting a word into its plural form.
The keys are the regular expressions and the values are the corresponding replacements.
$singulars
Section titled “$singulars ”public static array $singulars = ['/([nrlm]ese|deer|fish|sheep|measles|ois|pox|media|ss)$/i' => '\1', '/^(sea[-]bass)$/i' => '\1', '/(s)tatuses$/i' => '\1tatus', '/(f)eet$/i' => '\1oot', '/(t)eeth$/i' => '\1ooth', '/^(.*)(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|slave)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', '/([lr])ves$/i' => '\1f', '/(tive)s$/i' => '\1', '/(hive)s$/i' => '\1', '/(drive)s$/i' => '\1', '/([^fo])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', '/(n)etherlands$/i' => '\1\2etherlands', '/eaus$/' => 'eau', '/(currenc)ies$/' => '\1y', '/^(.*us)$/' => '\1', '/s$/i' => '']The rules for converting a word into its singular form.
The keys are the regular expressions and the values are the corresponding replacements.
$specials
Section titled “$specials ”public static array $specials = ['atlas' => 'atlases', 'beef' => 'beefs', 'brother' => 'brothers', 'cafe' => 'cafes', 'child' => 'children', 'cookie' => 'cookies', 'corpus' => 'corpuses', 'cow' => 'cows', 'curve' => 'curves', 'foe' => 'foes', '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', 'pasta' => 'pasta', 'penis' => 'penises', 'sex' => 'sexes', 'soliloquy' => 'soliloquies', 'testis' => 'testes', 'trilby' => 'trilbys', 'turf' => 'turfs', 'wave' => 'waves', 'Amoyese' => 'Amoyese', 'bison' => 'bison', 'Borghese' => 'Borghese', 'bream' => 'bream', 'breeches' => 'breeches', 'britches' => 'britches', 'buffalo' => 'buffalo', 'cantus' => 'cantus', 'carp' => 'carp', 'chassis' => 'chassis', 'clippers' => 'clippers', 'cod' => 'cod', 'coitus' => 'coitus', 'Congoese' => 'Congoese', 'contretemps' => 'contretemps', 'corps' => 'corps', 'debris' => 'debris', 'diabetes' => 'diabetes', 'djinn' => 'djinn', 'eland' => 'eland', 'elk' => 'elk', 'equipment' => 'equipment', 'Faroese' => 'Faroese', 'flounder' => 'flounder', 'Foochowese' => 'Foochowese', 'gallows' => 'gallows', 'Genevese' => 'Genevese', 'Genoese' => 'Genoese', 'Gilbertese' => 'Gilbertese', 'graffiti' => 'graffiti', 'headquarters' => 'headquarters', 'herpes' => 'herpes', 'hijinks' => 'hijinks', 'Hottentotese' => 'Hottentotese', 'information' => 'information', 'innings' => 'innings', 'jackanapes' => 'jackanapes', 'Kiplingese' => 'Kiplingese', 'Kongoese' => 'Kongoese', 'Lucchese' => 'Lucchese', 'mackerel' => 'mackerel', 'Maltese' => 'Maltese', 'mews' => 'mews', 'moose' => 'moose', 'mumps' => 'mumps', 'Nankingese' => 'Nankingese', 'news' => 'news', 'nexus' => 'nexus', 'Niasese' => 'Niasese', 'Pekingese' => 'Pekingese', 'Piedmontese' => 'Piedmontese', 'pincers' => 'pincers', 'Pistoiese' => 'Pistoiese', 'pliers' => 'pliers', 'Portuguese' => 'Portuguese', 'proceedings' => 'proceedings', 'rabies' => 'rabies', 'rice' => 'rice', 'rhinoceros' => 'rhinoceros', 'salmon' => 'salmon', 'Sarawakese' => 'Sarawakese', 'scissors' => 'scissors', 'series' => 'series', 'Shavese' => 'Shavese', 'shears' => 'shears', 'siemens' => 'siemens', 'species' => 'species', 'swine' => 'swine', 'testes' => 'testes', 'trousers' => 'trousers', 'trout' => 'trout', 'tuna' => 'tuna', 'Vermontese' => 'Vermontese', 'Wenchowese' => 'Wenchowese', 'whiting' => 'whiting', 'wildebeest' => 'wildebeest', 'Yengeese' => 'Yengeese', 'software' => 'software', 'hardware' => 'hardware']The special rules for converting a word between its plural form and singular form.
The keys are the special words in singular form, and the values are the corresponding plural form.
$transliterator
Section titled “$transliterator ”public static mixed $transliterator = self::TRANSLITERATE_LOOSEEither a Transliterator, or a string from which a Transliterator can be built for transliteration.
Used by transliterate() when intl is available. Defaults to TRANSLITERATE_LOOSE
Method details
Section titled “Method details”camel2id()
Section titled “camel2id() ”public static function camel2id(string $name, string $separator = '-', bool|string $strict = false): stringConverts a CamelCase name into an ID in lowercase.
Words in the ID may be concatenated using the specified character (defaults to ’-’). For example, ‘PostTag’ will be converted to ‘post-tag’.
Parameters
| Parameter | Type | Description |
|---|---|---|
$name | string | The string to be converted |
$separator | string | The character used to concatenate the words in the ID |
$strict | bool| | Whether to insert a separator between two consecutive uppercase chars, defaults to false |
Returns
string: The resulting ID
camel2words()
Section titled “camel2words() ”public static function camel2words(string $name, bool $ucwords = true): stringConverts a CamelCase name into space-separated words.
For example, ‘PostTag’ will be converted to ‘Post Tag’.
Parameters
| Parameter | Type | Description |
|---|---|---|
$name | string | The string to be converted |
$ucwords | bool | Whether to capitalize the first letter in each word |
Returns
string: The resulting words
camelize()
Section titled “camelize() ”public static function camelize(string $word): stringReturns given word as CamelCased.
Converts a word like “send_email” to “SendEmail”. It will remove non alphanumeric character from the word, so “who’s online” will be converted to “WhoSOnline”.
Parameters
| Parameter | Type | Description |
|---|---|---|
$word | string | The word to CamelCase |
Returns
string
See also
classify()
Section titled “classify() ”public static function classify(string $tableName): stringConverts a table name to its class name.
For example, converts “people” to “Person”.
Parameters
| Parameter | Type | Description |
|---|---|---|
$tableName | string |
Returns
string
humanize()
Section titled “humanize() ”public static function humanize(string $word, bool $ucAll = false): stringReturns a human-readable string from $word.
Parameters
| Parameter | Type | Description |
|---|---|---|
$word | string | The string to humanize |
$ucAll | bool | Whether to set all words to uppercase or not |
Returns
string
id2camel()
Section titled “id2camel() ”public static function id2camel(string $id, string $separator = '-'): stringConverts an ID into a CamelCase name.
Words in the ID separated by $separator (defaults to ’-’) will be concatenated into a CamelCase name.
For example, ‘post-tag’ is converted to ‘PostTag’.
Parameters
| Parameter | Type | Description |
|---|---|---|
$id | string | The ID to be converted |
$separator | string | The character used to separate the words in the ID |
Returns
string: The resulting CamelCase name
ordinalize()
Section titled “ordinalize() ”public static function ordinalize(int $number): stringConverts number to its ordinal English form. For example, converts 13 to 13th, 2 to 2nd .
..
Parameters
| Parameter | Type | Description |
|---|---|---|
$number | int | The number to get its ordinal value |
Returns
string
pluralize()
Section titled “pluralize() ”public static function pluralize(string $word): stringConverts a word to its plural form.
Note that this is for English only! For example, ‘apple’ will become ‘apples’, and ‘child’ will become ‘children’.
Parameters
| Parameter | Type | Description |
|---|---|---|
$word | string | The word to be pluralized |
Returns
string: The pluralized word
sentence()
Section titled “sentence() ”public static function sentence(array $words, string|null $twoWordsConnector = null, string|null $lastWordConnector = null, string $connector = ', '): stringConverts a list of words into a sentence.
Special treatment is done for the last few words. For example,
$words = ['Spain', 'France'];echo Inflector::sentence($words);// output: Spain and France
$words = ['Spain', 'France', 'Italy'];echo Inflector::sentence($words);// output: Spain, France and Italy
$words = ['Spain', 'France', 'Italy'];echo Inflector::sentence($words, ' & ');// output: Spain, France & ItalyParameters
| Parameter | Type | Description |
|---|---|---|
$words | array | The words to be converted into an string |
$twoWordsConnector | string| | The string connecting words when there are only two |
$lastWordConnector | string| | The string connecting the last two words. If this is null, it will take the value of $twoWordsConnector. |
$connector | string | The string connecting words other than those connected by $lastWordConnector and $twoWordsConnector |
Returns
string: The generated sentence
Since
2.0.1
singularize()
Section titled “singularize() ”public static function singularize(string $word): stringReturns the singular of the $word.
Parameters
| Parameter | Type | Description |
|---|---|---|
$word | string | The english word to singularize |
Returns
string: Singular noun.
slug()
Section titled “slug() ”public static function slug(string $string, string $replacement = '-', bool $lowercase = true): stringReturns a string with all spaces converted to given replacement, non word characters removed and the rest of characters transliterated.
If intl extension isn’t available uses fallback that converts latin characters only and removes the rest. You may customize characters map via $transliteration property of the helper.
Parameters
| Parameter | Type | Description |
|---|---|---|
$string | string | An arbitrary string to convert |
$replacement | string | The replacement to use for spaces |
$lowercase | bool | Whether to return the string in lowercase or not. Defaults to true. |
Returns
string: The converted string.
tableize()
Section titled “tableize() ”public static function tableize(string $className): stringConverts a class name to its table name (pluralized) naming conventions.
For example, converts “Person” to “people”.
Parameters
| Parameter | Type | Description |
|---|---|---|
$className | string | The class name for getting related table_name |
Returns
string
titleize()
Section titled “titleize() ”public static function titleize(string $words, bool $ucAll = false): stringConverts an underscored or CamelCase word into a English sentence.
Parameters
| Parameter | Type | Description |
|---|---|---|
$words | string | |
$ucAll | bool | Whether to set all words to uppercase |
Returns
string
transliterate()
Section titled “transliterate() ”public static function transliterate(string $string, string|Transliterator|null $transliterator = null): stringReturns transliterated version of a string.
If intl extension isn’t available uses fallback that converts latin characters only and removes the rest. You may customize characters map via $transliteration property of the helper.
Parameters
| Parameter | Type | Description |
|---|---|---|
$string | string | Input string |
$transliterator | string|Transliterator| | Either a Transliterator or a string from which a Transliterator can be built. |
Returns
string
underscore()
Section titled “underscore() ”public static function underscore(string $words): stringConverts any “CamelCased” into an “underscored_word”.
Parameters
| Parameter | Type | Description |
|---|---|---|
$words | string | The word(s) to underscore |
Returns
string
variablize()
Section titled “variablize() ”public static function variablize(string $word): stringSame as camelize but first char is in lowercase.
Converts a word like “send_email” to “sendEmail”. It will remove non alphanumeric character from the word, so “who’s online” will be converted to “whoSOnline”.
Parameters
| Parameter | Type | Description |
|---|---|---|
$word | string | To lowerCamelCase |
Returns
string
hasIntl()
Section titled “hasIntl() ”protected static function hasIntl(): boolReturns
bool: If intl extension is loaded