HumHub Documentation (unofficial)

Inflector extends BaseInflector
in package

Inflector pluralizes and singularizes English nouns. It also contains some other useful methods.

Tags
author

Antonio Ramirez amigo.cobos@gmail.com

since
2.0

Table of Contents

Constants

TRANSLITERATE_LOOSE  = 'Any-Latin; Latin-ASCII; [\u0080-\uffff] remove'
Shortcut for `Any-Latin; Latin-ASCII; [\u0080-\uffff] remove` transliteration rule.
TRANSLITERATE_MEDIUM  = 'Any-Latin; Latin-ASCII'
Shortcut for `Any-Latin; Latin-ASCII` transliteration rule.
TRANSLITERATE_STRICT  = 'Any-Latin; NFKD'
Shortcut for `Any-Latin; NFKD` transliteration rule.

Properties

$plurals  : array<string|int, mixed>
$singulars  : array<string|int, mixed>
$specials  : array<string|int, mixed>
$transliteration  : array<string|int, mixed>
$transliterator  : mixed

Methods

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

Constants

TRANSLITERATE_LOOSE

Shortcut for `Any-Latin; Latin-ASCII; [\u0080-\uffff] remove` transliteration rule.

public mixed TRANSLITERATE_LOOSE = 'Any-Latin; Latin-ASCII; [\u0080-\uffff] remove'

The rule is loose, letters will be transliterated with the characters of Basic Latin Unicode Block. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? will be transliterated to huo qu dao dochira Ukrainska: g,e, Srpska: d, n, d! Espanol?.

Used in [[transliterate()]]. For detailed information see unicode normalization forms

Tags
see
https://unicode.org/reports/tr15/#Normalization_Forms_Table
see
transliterate()
since
2.0.7

TRANSLITERATE_MEDIUM

Shortcut for `Any-Latin; Latin-ASCII` transliteration rule.

public mixed TRANSLITERATE_MEDIUM = 'Any-Latin; Latin-ASCII'

The rule is medium, letters will be transliterated to characters of Latin-1 (ISO 8859-1) ASCII table. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? will be transliterated to huo qu dao dochira Ukrainsʹka: g,e, Srpska: d, n, d! ¿Espanol?.

Used in [[transliterate()]]. For detailed information see unicode normalization forms

Tags
see
https://unicode.org/reports/tr15/#Normalization_Forms_Table
see
transliterate()
since
2.0.7

TRANSLITERATE_STRICT

Shortcut for `Any-Latin; NFKD` transliteration rule.

public mixed TRANSLITERATE_STRICT = 'Any-Latin; NFKD'

The rule is strict, letters will be transliterated with the closest sound-representation chars. The result may contain any UTF-8 chars. For example: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? will be transliterated to huò qǔ dào dochira Ukraí̈nsʹka: g̀,ê, Srpska: đ, n̂, d̂! ¿Español?.

Used in [[transliterate()]]. For detailed information see unicode normalization forms

Tags
see
https://unicode.org/reports/tr15/#Normalization_Forms_Table
see
transliterate()
since
2.0.7

Properties

$plurals

public static array<string|int, mixed> $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

public static array<string|int, mixed> $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

public static array<string|int, mixed> $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.

$transliteration

public static array<string|int, mixed> $transliteration = ['À' => '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']

fallback map for transliteration used by [[transliterate()]] when intl isn't available.

Methods

camel2id()

Converts a CamelCase name into an ID in lowercase.

public static camel2id(string $name[, string $separator = '-' ][, bool|string $strict = false ]) : string

Words in the ID may be concatenated using the specified character (defaults to '-'). For example, 'PostTag' will be converted to 'post-tag'.

Parameters
$name : string

the string to be converted

$separator : string = '-'

the character used to concatenate the words in the ID

$strict : bool|string = false

whether to insert a separator between two consecutive uppercase chars, defaults to false

Return values
string

the resulting ID

camel2words()

Converts a CamelCase name into space-separated words.

public static camel2words(string $name[, bool $ucwords = true ]) : string

For example, 'PostTag' will be converted to 'Post Tag'.

Parameters
$name : string

the string to be converted

$ucwords : bool = true

whether to capitalize the first letter in each word

Return values
string

the resulting words

camelize()

Returns given word as CamelCased.

public static camelize(string $word) : string

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
$word : string

the word to CamelCase

Tags
see
variablize()
Return values
string

classify()

Converts a table name to its class name.

public static classify(string $tableName) : string

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

Parameters
$tableName : string
Return values
string

humanize()

Returns a human-readable string from $word.

public static humanize(string $word[, bool $ucAll = false ]) : string
Parameters
$word : string

the string to humanize

$ucAll : bool = false

whether to set all words to uppercase or not

Return values
string

id2camel()

Converts an ID into a CamelCase name.

public static id2camel(string $id[, string $separator = '-' ]) : string

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
$id : string

the ID to be converted

$separator : string = '-'

the character used to separate the words in the ID

Return values
string

the resulting CamelCase name

ordinalize()

Converts number to its ordinal English form. For example, converts 13 to 13th, 2 to 2nd .

public static ordinalize(int $number) : string

..

Parameters
$number : int

the number to get its ordinal value

Return values
string

pluralize()

Converts a word to its plural form.

public static pluralize(string $word) : string

Note that this is for English only! For example, 'apple' will become 'apples', and 'child' will become 'children'.

Parameters
$word : string

the word to be pluralized

Return values
string

the pluralized word

sentence()

Converts a list of words into a sentence.

public static sentence(array<string|int, mixed> $words[, string|null $twoWordsConnector = null ][, string|null $lastWordConnector = null ][, string $connector = ', ' ]) : string

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
$words : array<string|int, mixed>

the words to be converted into an string

$twoWordsConnector : string|null = null

the string connecting words when there are only two

$lastWordConnector : string|null = 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

Tags
since
2.0.1
Return values
string

the generated sentence

singularize()

Returns the singular of the $word.

public static singularize(string $word) : string
Parameters
$word : string

the english word to singularize

Return values
string

Singular noun.

slug()

Returns a string with all spaces converted to given replacement, non word characters removed and the rest of characters transliterated.

public static slug(string $string[, string $replacement = '-' ][, bool $lowercase = true ]) : 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
$string : string

An arbitrary string to convert

$replacement : string = '-'

The replacement to use for spaces

$lowercase : bool = true

whether to return the string in lowercase or not. Defaults to true.

Return values
string

The converted string.

tableize()

Converts a class name to its table name (pluralized) naming conventions.

public static tableize(string $className) : string

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

Parameters
$className : string

the class name for getting related table_name

Return values
string

titleize()

Converts an underscored or CamelCase word into a English sentence.

public static titleize(string $words[, bool $ucAll = false ]) : string
Parameters
$words : string
$ucAll : bool = false

whether to set all words to uppercase

Return values
string

transliterate()

Returns transliterated version of a string.

public static transliterate(string $string[, string|Transliterator|null $transliterator = null ]) : 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
$string : string

input string

$transliterator : string|Transliterator|null = null

either a [[\Transliterator]] or a string from which a [[\Transliterator]] can be built.

Tags
since
2.0.7

this method is public.

Return values
string

underscore()

Converts any "CamelCased" into an "underscored_word".

public static underscore(string $words) : string
Parameters
$words : string

the word(s) to underscore

Return values
string

variablize()

Same as camelize but first char is in lowercase.

public static variablize(string $word) : string

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
$word : string

to lowerCamelCase

Return values
string

hasIntl()

protected static hasIntl() : bool
Return values
bool

if intl extension is loaded

encoding()

private static encoding() : string
Return values
string

        
On this page

Search results