# BaseInflector

> BaseInflector provides concrete implementation for yii\helpers\Inflector.

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [helpers](/docs/api/yii/helpers/index.md) › BaseInflector

| class | `yii\helpers\BaseInflector` |
| --- | --- |
| Since | 2.0 |
| Source | [`framework/helpers/BaseInflector.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/helpers/BaseInflector.php#L22) |

1 subclass:

- [`Inflector`](/docs/api/yii/helpers/inflector/index.md)

BaseInflector provides concrete implementation for [`Inflector`](/docs/api/yii/helpers/inflector/index.md).

Do not use BaseInflector. Use [`Inflector`](/docs/api/yii/helpers/inflector/index.md) instead.

## Properties

| Property | Type | Description | Defined by |
| --- | --- | --- | --- |
| [`$plurals`](#property-plurals) static | `array` | The rules for converting a word into its plural form. Default: `['/([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']`. | `BaseInflector` |
| [`$singulars`](#property-singulars) static | `array` | The rules for converting a word into its singular form. Default: `['/([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' => '']`. | `BaseInflector` |
| [`$specials`](#property-specials) static | `array` | The special rules for converting a word between its plural form and singular form. Default: `['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']`. | `BaseInflector` |
| <span id="property-transliteration"></span>`$transliteration` static | `array` | Fallback map for transliteration used by [`transliterate()`](/docs/api/yii/helpers/baseinflector/index.md#method-transliterate) when intl isn't available. Default: `['À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH', 'ß' => 'ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th', 'ÿ' => 'y']`. | `BaseInflector` |
| [`$transliterator`](#property-transliterator) static | `mixed` | Either a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php), or a string from which a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php) can be built for transliteration. Default: `self::TRANSLITERATE_LOOSE`. | `BaseInflector` |

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| [`camel2id()`](#method-camel2id) static | Converts a CamelCase name into an ID in lowercase. | `BaseInflector` |
| [`camel2words()`](#method-camel2words) static | Converts a CamelCase name into space-separated words. | `BaseInflector` |
| [`camelize()`](#method-camelize) static | Returns given word as CamelCased. | `BaseInflector` |
| [`classify()`](#method-classify) static | Converts a table name to its class name. | `BaseInflector` |
| [`humanize()`](#method-humanize) static | Returns a human-readable string from $word. | `BaseInflector` |
| [`id2camel()`](#method-id2camel) static | Converts an ID into a CamelCase name. | `BaseInflector` |
| [`ordinalize()`](#method-ordinalize) static | Converts number to its ordinal English form. For example, converts 13 to 13th, 2 to 2nd . | `BaseInflector` |
| [`pluralize()`](#method-pluralize) static | Converts a word to its plural form. | `BaseInflector` |
| [`sentence()`](#method-sentence) static | Converts a list of words into a sentence. | `BaseInflector` |
| [`singularize()`](#method-singularize) static | Returns the singular of the $word. | `BaseInflector` |
| [`slug()`](#method-slug) static | Returns a string with all spaces converted to given replacement, non word characters removed and the rest of characters transliterated. | `BaseInflector` |
| [`tableize()`](#method-tableize) static | Converts a class name to its table name (pluralized) naming conventions. | `BaseInflector` |
| [`titleize()`](#method-titleize) static | Converts an underscored or CamelCase word into a English sentence. | `BaseInflector` |
| [`transliterate()`](#method-transliterate) static | Returns transliterated version of a string. | `BaseInflector` |
| [`underscore()`](#method-underscore) static | Converts any "CamelCased" into an "underscored_word". | `BaseInflector` |
| [`variablize()`](#method-variablize) static | Same as camelize but first char is in lowercase. | `BaseInflector` |
| [`hasIntl()`](#method-hasIntl) protected static |  | `BaseInflector` |

## Constants

| Constant | Value | Description | Defined by |
| --- | --- | --- | --- |
| <span id="const-TRANSLITERATE_STRICT"></span>`TRANSLITERATE_STRICT` | `'Any-Latin; NFKD'` | Shortcut for `Any-Latin; NFKD` transliteration rule. Available since 2.0.7. | `BaseInflector` |
| <span id="const-TRANSLITERATE_MEDIUM"></span>`TRANSLITERATE_MEDIUM` | `'Any-Latin; Latin-ASCII'` | Shortcut for `Any-Latin; Latin-ASCII` transliteration rule. Available since 2.0.7. | `BaseInflector` |
| <span id="const-TRANSLITERATE_LOOSE"></span>`TRANSLITERATE_LOOSE` | `'Any-Latin; Latin-ASCII; [\u0080-\uffff] remove'` | Shortcut for `Any-Latin; Latin-ASCII; [\u0080-\uffff] remove` transliteration rule. Available since 2.0.7. | `BaseInflector` |

## Property details

### $plurals <span id="property-plurals"></span>

```php
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 <span id="property-singulars"></span>

```php
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 <span id="property-specials"></span>

```php
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 <span id="property-transliterator"></span>

```php
public static mixed $transliterator = self::TRANSLITERATE_LOOSE
```

Either a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php), or a string from which a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php) can be built for transliteration.

Used by [`transliterate()`](/docs/api/yii/helpers/baseinflector/index.md#method-transliterate) when intl is available. Defaults to [`TRANSLITERATE_LOOSE`](/docs/api/yii/helpers/baseinflector/index.md#const-TRANSLITERATE_LOOSE)

## Method details

### camel2id() <span id="method-camel2id"></span>

```php
public static function camel2id(string $name, string $separator = '-', bool|string $strict = false): string
```

Converts 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\|string` | Whether to insert a separator between two consecutive uppercase chars, defaults to false |

**Returns**

`string`: The resulting ID

### camel2words() <span id="method-camel2words"></span>

```php
public static function camel2words(string $name, bool $ucwords = true): string
```

Converts 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() <span id="method-camelize"></span>

```php
public static function camelize(string $word): string
```

Returns 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**

- [`variablize()`](/docs/api/yii/helpers/baseinflector/index.md#method-variablize)

### classify() <span id="method-classify"></span>

```php
public static function classify(string $tableName): string
```

Converts a table name to its class name.

For example, converts "people" to "Person".

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$tableName` | `string` |  |

**Returns**

`string`

### humanize() <span id="method-humanize"></span>

```php
public static function humanize(string $word, bool $ucAll = false): string
```

Returns 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() <span id="method-id2camel"></span>

```php
public static function id2camel(string $id, string $separator = '-'): string
```

Converts 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() <span id="method-ordinalize"></span>

```php
public static function ordinalize(int $number): string
```

Converts 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() <span id="method-pluralize"></span>

```php
public static function pluralize(string $word): string
```

Converts 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() <span id="method-sentence"></span>

```php
public static function sentence(array $words, string|null $twoWordsConnector = null, string|null $lastWordConnector = null, string $connector = ', '): string
```

Converts 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 & Italy
```

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$words` | `array` | The words to be converted into an string |
| `$twoWordsConnector` | `string\|null` | The string connecting words when there are only two |
| `$lastWordConnector` | `string\|null` | 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() <span id="method-singularize"></span>

```php
public static function singularize(string $word): string
```

Returns the singular of the $word.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$word` | `string` | The english word to singularize |

**Returns**

`string`: Singular noun.

### slug() <span id="method-slug"></span>

```php
public static function slug(string $string, string $replacement = '-', bool $lowercase = true): string
```

Returns 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() <span id="method-tableize"></span>

```php
public static function tableize(string $className): string
```

Converts 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() <span id="method-titleize"></span>

```php
public static function titleize(string $words, bool $ucAll = false): string
```

Converts 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() <span id="method-transliterate"></span>

```php
public static function transliterate(string $string, string|Transliterator|null $transliterator = null): string
```

Returns 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`](https://www.php.net/manual/en/class.transliterator.php)`\|null` | Either a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php) or a string from which a [`Transliterator`](https://www.php.net/manual/en/class.transliterator.php) can be built. |

**Returns**

`string`

### underscore() <span id="method-underscore"></span>

```php
public static function underscore(string $words): string
```

Converts any "CamelCased" into an "underscored_word".

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$words` | `string` | The word(s) to underscore |

**Returns**

`string`

### variablize() <span id="method-variablize"></span>

```php
public static function variablize(string $word): string
```

Same 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() <span id="method-hasIntl"></span>

```php
protected static function hasIntl(): bool
```

**Returns**

`bool`: If intl extension is loaded