Класс yii\helpers\BaseInflector
| Наследование | yii\helpers\BaseInflector |
|---|---|
| Подклассы | yii\helpers\Inflector |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/helpers/BaseInflector.php |
BaseInflector предоставляет конкретную реализацию для yii\helpers\Inflector.
Не используйте BaseInflector. Используйте yii\helpers\Inflector вместо него.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $plurals | массив | Правила преобразования слова в его множественное число. | yii\helpers\BaseInflector |
| $singulars | массив | Правила преобразования слова в его единственное число. | yii\helpers\BaseInflector |
| $specials | массив | Специальные правила преобразования слова между его множественным и единственным числом. | yii\helpers\BaseInflector |
| $transliteration | массив | Дополнительный массив для транслитерации, используемый функцией transliterate(), если intl недоступен. | yii\helpers\BaseInflector |
| mixed | Либо Transliterator, либо строка, из которой можно создать Transliterator для транслитерации. | yii\helpers\BaseInflector |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| camel2id() | Преобразует имя в CamelCase в ID в нижнем регистре. | yii\helpers\BaseInflector |
| camel2words() | Преобразует имя в CamelCase в слова, разделенные пробелами. | yii\helpers\BaseInflector |
| camelize() | Возвращает заданное слово в формате CamelCase. Преобразует слово типа "send_email" в "SendEmail". Удаляет небуквенно-цифровые символы из слова, поэтому "who's online" преобразуется в "WhoSOnline" | yii\helpers\BaseInflector |
| classify() | Преобразует имя таблицы в имя класса. Например, преобразует "people" в "Person" | yii\helpers\BaseInflector |
| humanize() | Возвращает удобочитаемую строку из $word | yii\helpers\BaseInflector |
| id2camel() | Преобразует ID в имя в CamelCase. | yii\helpers\BaseInflector |
| ordinalize() | Преобразует число в его порядковое английское обозначение. Например, преобразует 13 в 13-е, 2 в 2-е. | yii\helpers\BaseInflector |
| pluralize() | Преобразует слово в его множественное число. | yii\helpers\BaseInflector |
| sentence() | Преобразует список слов в предложение. | yii\helpers\BaseInflector |
| singularize() | Возвращает единственное число слова $word | yii\helpers\BaseInflector |
| slug() | Возвращает строку, в которой все пробелы заменены на заданный символ замены, небуквенно-цифровые символы удалены, а остальные символы транслитерированы. | yii\helpers\BaseInflector |
| tableize() | Преобразует имя класса в имя таблицы (в множественном числе) согласно правилам именования. Например, преобразует "Person" в "people" | yii\helpers\BaseInflector |
| titleize() | Преобразует слово с подчеркиванием или в CamelCase в английское предложение. | yii\helpers\BaseInflector |
| transliterate() | Возвращает транслитерированную версию строки. | yii\helpers\BaseInflector |
| underscore() | Преобразует любое слово в CamelCase в слово с подчеркиванием (underscored_word). | yii\helpers\BaseInflector |
| variablize() | Аналогично camelize, но первый символ в нижнем регистре. | yii\helpers\BaseInflector |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| hasIntl() | yii\helpers\BaseInflector |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| TRANSLITERATE_LOOSE | 'Any-Latin; Latin-ASCII; [\u0080-\uffff] remove' | Краткое обозначение для Any-Latin; Latin-ASCII; [\u0080-\uffff] remove правила транслитерации. Правило слабое, буквы будут транслитерированы с символами блока Basic Latin Unicode. Например: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? будет транслитерировано в huo qu dao dochira Ukrainska: g,e, Srpska: d, n, d! Espanol? Используется в transliterate(). Подробную информацию смотрите в формах нормализации Unicode | yii\helpers\BaseInflector |
| TRANSLITERATE_MEDIUM | 'Any-Latin; Latin-ASCII' | Краткое обозначение для Any-Latin; Latin-ASCII правила транслитерации. Правило среднее, буквы будут транслитерированы в символы таблицы ASCII Latin-1 (ISO 8859-1). Например: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? будет транслитерировано в huo qu dao dochira Ukrainsʹka: g,e, Srpska: d, n, d! ¿Espanol? Используется в transliterate(). Подробную информацию смотрите в формах нормализации Unicode | yii\helpers\BaseInflector |
| TRANSLITERATE_STRICT | 'Any-Latin; NFKD' | Краткое обозначение для Any-Latin; NFKD правила транслитерации. Правило строгое, буквы будут транслитерированы с ближайшими символами, представляющими звучание. Результат может содержать любые символы UTF-8. Например: 获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? будет транслитерировано в huò qǔ dào dochira Ukraí̈nsʹka: g̀,ê, Srpska: đ, n̂, d̂! ¿Español? Используется в transliterate(). Подробную информацию смотрите в формах нормализации Unicode | yii\helpers\BaseInflector |
Подробности о свойствах
$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']
$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' => '']
$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']
$transliteration общедоступное статическое свойство
Дополнительный массив для транслитерации, используемый функцией transliterate(), если intl недоступен.
public static array $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']
$transliterator общедоступное статическое свойство
Либо Транслитератор, либо строка, из которой можно создать транслитератор для транслитерации. Используется методом transliterate(), если модуль intl доступен. По умолчанию используется значение TRANSLITERATE_LOOSE.
См. также http://php.net/manual/en/transliterator.transliterate.php.
public static mixed $transliterator = self::TRANSLITERATE_LOOSE
Подробное описание методов
camel2id() public static метод
Преобразует имя в формате CamelCase в идентификатор в нижнем регистре.
Слова в идентификаторе могут быть соединены с помощью указанного символа (по умолчанию - '-'). Например, 'PostTag' будет преобразован в 'post-tag'.
| public static string camel2id ( $name, $separator = '-', $strict = false ) | ||
|---|---|---|
| $name | string |
Строка для преобразования |
| $separator | string |
Символ, используемый для соединения слов в идентификаторе |
| $strict | boolean|string |
Вставлять ли разделитель между двумя последовательными заглавными буквами, по умолчанию false |
| return | string |
Полученный идентификатор |
camel2words() public static метод
Преобразует имя в формате CamelCase в слова, разделенные пробелами.
Например, 'PostTag' будет преобразован в 'Post Tag'.
| public static string camel2words ( $name, $ucwords = true ) | ||
|---|---|---|
| $name | string |
Строка для преобразования |
| $ucwords | boolean |
Устанавливать ли заглавную букву каждого слова |
| return | string |
Полученные слова |
camelize() public static метод
Возвращает данное слово в формате CamelCase. Преобразует слово, подобное "send_email", в "SendEmail". Удаляет не буквенно-цифровые символы из слова, поэтому "who's online" будет преобразовано в "WhoSOnline"
См. также variablize().
| public static string camelize ( $word ) | ||
|---|---|---|
| $word | string |
Слово для преобразования в CamelCase |
classify() public static метод
Преобразует имя таблицы в имя класса. Например, преобразует "people" в "Person"
| public static string classify ( $tableName ) | ||
|---|---|---|
| $tableName | string | |
hasIntl() защищенный статический метод
| protected static boolean hasIntl ( ) | ||
|---|---|---|
| return | boolean |
Если модуль intl загружен |
humanize() public static метод
Возвращает строку, читаемую человеком, из $word
| public static string humanize ( $word, $ucAll = false ) | ||
|---|---|---|
| $word | string |
Строка для преобразования |
| $ucAll | boolean |
Преобразовывать ли все слова в верхний регистр |
id2camel() public static метод
Преобразует идентификатор в имя в формате CamelCase.
Слова в идентификаторе, разделенные $separator (по умолчанию '-') будут объединены в имя в формате CamelCase. Например, 'post-tag' преобразуется в 'PostTag'.
| public static string id2camel ( $id, $separator = '-' ) | ||
|---|---|---|
| $id | string |
Идентификатор для преобразования |
| $separator | string |
Символ, используемый для разделения слов в идентификаторе |
| return | string |
Полученное имя в формате CamelCase |
ordinalize() public static метод
Преобразует число в его порядковое английское значение. Например, преобразует 13 в 13-е, 2 в 2-е.
..
| public static string ordinalize ( $number ) | ||
|---|---|---|
| $number | integer |
Число, для которого необходимо получить порядковое значение |
pluralize() public static метод
Преобразует слово в его множественное число.
Обратите внимание, что это только для английского языка! Например, 'apple' станет 'apples', а 'child' станет 'children'.
| public static string pluralize ( $word ) | ||
|---|---|---|
| $word | string |
Слово, которое нужно привести к множественному числу |
| return | string |
Слово во множественном числе |
sentence() public static метод (доступен начиная с версии 2.0.1)
Преобразует список слов в предложение.
Особое обращение производится с последними словами. Например,
$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
| public static string sentence ( array $words, $twoWordsConnector = null, $lastWordConnector = null, $connector = ', ' ) | ||
|---|---|---|
| $words | array |
Слова, которые нужно преобразовать в строку |
| $twoWordsConnector | string |
Строка, соединяющая слова, когда их всего два |
| $lastWordConnector | string |
Строка, соединяющая последние два слова. Если это null, она примет значение |
| $connector | string |
Строка, соединяющая слова, кроме тех, которые соединены $lastWordConnector и $twoWordsConnector |
| return | string |
Сгенерированное предложение |
singularize() public static метод
Возвращает единственное число слова $word
| public static string singularize ( $word ) | ||
|---|---|---|
| $word | string |
Английское слово, которое нужно привести к единственному числу |
| return | string |
Существительное в единственном числе. |
slug() public static метод
Возвращает строку, в которой все пробелы заменены заданной заменой, не буквенно-цифровые символы удалены, а остальные символы транслитерированы.
Если модуль intl недоступен, используется резервный вариант, который преобразует только латинские символы и удаляет остальные. Вы можете настроить карту символов через свойство $transliteration помощника.
| public static string slug ( $string, $replacement = '-', $lowercase = true ) | ||
|---|---|---|
| $string | string |
Произвольная строка для преобразования |
| $replacement | string |
Замена для пробелов |
| $lowercase | boolean |
Возвращать строку в нижнем регистре или нет. По умолчанию |
| return | string |
Преобразованная строка. |
tableize() public static метод
Преобразует имя класса в имя таблицы (во множественном числе) в соответствии с правилами именования. Например, преобразует "Person" в "people"
| public static string tableize ( $className ) | ||
|---|---|---|
| $className | string |
Имя класса для получения соответствующего имени таблицы |
titleize() public static метод
Преобразует слово с подчеркиванием или в формате CamelCase в английское предложение.
| public static строка titleize ( $words, $ucAll = false ) | ||
|---|---|---|
| $words | строка | |
| $ucAll | булево |
Устанавливать ли все слова в верхнем регистре |
transliterate() общедоступный статический метод (доступен с версии 2.0.7)
Возвращает транслитерированную версию строки.
Если расширение intl недоступно, используется резервное решение, которое преобразует только латинские символы и удаляет остальные. Вы можете настроить карту символов через свойство $transliteration помощника.
| public static строка transliterate ( $string, $transliterator = null ) | ||
|---|---|---|
| $string | строка |
Входная строка |
| $transliterator | строка|Транслитератор |
Либо Транслитератор, либо строка, из которой можно создать Транслитератор. |
underscore() общедоступный статический метод
Преобразует любое "CamelCased" в "underscored_word".
| public static строка underscore ( $words ) | ||
|---|---|---|
| $words | строка |
Слова, которые нужно подчеркнуть |
variablize() общедоступный статический метод
То же, что и camelize, но первый символ в нижнем регистре.
Преобразует слово, такое как "send_email", в "sendEmail". Удалит не буквенно-цифровые символы из слова, поэтому "кто онлайн" будет преобразовано в "ктоОнлайн"
| public static строка variablize ( $word ) | ||
|---|---|---|
| $word | строка |
В нижний регистр с большой буквы |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-helpers-baseinflector.html