Класс Inflector
Склонение и обращение английских слов.
Класс Inflector склоняет и обращает английские существительные. Используется в CakePHP для согласования имён по всей системе.
Ссылка: https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Utility/Inflector.php
Краткое описание свойств
- Массив кэша методов.
array - Начальное состояние Inflector, необходимо для работы reset().
array - Правила склонения множественного числа
array - Правила склонения единственного числа
array - Стандартное отображение акцентированных и специальных символов на ASCII символы
array - Слова, которые не должны склоняться
array
Краткое описание методов
- Кэширование склоненных значений и возврат, если они уже доступны
- Возвращает заданное слово в нижнем регистре с подчёркиваниями в виде слова с заглавной первой буквой каждого слова.
- Возвращает имя класса модели Cake ("Person" для таблицы базы данных "people") для заданной таблицы базы данных.
-
Возвращает заданную строку с подчёркиваниями в виде читаемой строки. (Подчёркивания заменяются пробелами, а последующие слова записываются с заглавной буквы.)
- Возвращает $word в форме множественного числа.
-
Очищает кэши склоненных значений Inflector и сбрасывает правила склонения до начальных значений.
- Добавляет пользовательские правила склонения $rules, типа 'plural', 'singular' или 'transliteration' $type.
- Возвращает $word в форме единственного числа.
-
Возвращает строку, в которой все пробелы заменены подчёркиваниями (по умолчанию), акцентированные символы заменены на неакцентированные, а небуквенные символы удалены.
- Возвращает соответствующее имя таблицы для заданного класса модели $className. ("people" для класса модели "Person").
- Возвращает заданное слово с заглавной первой буквой каждого слова в виде слова с подчёркиваниями.
- Возвращает версию camelBack с подчёркнутой строки.
Подробное описание методов
_cache()source protected static
_cache( string $type , string $key , string $value false )
Кэширование склоненных значений и возврат, если они уже доступны
Параметры
- string
$type - Тип склонения
- string
$key - Исходное значение
- string
$valueoptional false - Склоненное значение
Возвращает
stringСклоненное значение из кэша
camelize()source public static
camelize( string $lowerCaseAndUnderscoredWord )
Возвращает заданное слово в нижнем регистре с подчёркиваниями в виде слова с заглавной первой буквой каждого слова.
Параметры
- string
$lowerCaseAndUnderscoredWord - Склоняемое слово
Возвращает
stringСлово в формате с заглавными буквами. Например: LikeThis.
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::camelizeclassify()source public static
classify( string $tableName )
Возвращает имя класса модели Cake ("Person" для таблицы базы данных "people") для заданной таблицы базы данных.
Параметры
- string
$tableName - Имя таблицы базы данных, для которой требуется имя класса
Возвращает
stringИмя класса
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::classifyhumanize()source public static
humanize( string $lowerCaseAndUnderscoredWord )
Возвращает заданную строку с подчёркиваниями в виде читаемой строки. (Подчёркивания заменяются пробелами, а последующие слова записываются с заглавной буквы.)
Параметры
- string
$lowerCaseAndUnderscoredWord - Строка, которую нужно сделать более читаемой
Возвращает
stringЧитаемая строка
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::humanizepluralize()source public static
pluralize( string $word )
Возвращает $word в форме множественного числа.
Параметры
- string
$word - Слово в единственном числе
Возвращает
stringСлово во множественном числе
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::pluralizereset()source public static
reset( )
Очищает кэши склоненных значений Inflector и сбрасывает правила склонения до начальных значений.
rules()source public static
rules( string $type , array $rules , boolean $reset false )
Добавляет пользовательские правила склонения $rules, типа 'plural', 'singular' или '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')); Параметры
- string
$type - Тип склонения, 'plural', 'singular' или 'transliteration'
- array
$rules - Массив правил для добавления.
- boolean
$resetoptional false Если true, удалит все стандартные склонения для новых правил, определённых в $rules.
singularize()source public static
singularize( string $word )
Возвращает $word в форме единственного числа.
Параметры
- string
$word - Слово во множественном числе
Возвращает
stringСлово в единственном числе
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::singularizeslug()source public static
slug( string $string , string $replacement '_' )
Возвращает строку, в которой все пробелы заменены на подчеркивания (по умолчанию), символы с диакритическими знаками заменены на символы без диакритики, а небуквенные символы удалены.
Параметры
- строка
$string - строка, которую нужно преобразовать в slug
- строка
$replacementнеобязательно '_' - будет заменять ключи в map
Возвращает
строкаСсылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::slugtableize()source public static
tableize( string $className )
Возвращает соответствующее имя таблицы для заданного модели $className. ("people" для модели класса "Person").
Параметры
- строка
$className - Имя класса, для которого нужно получить имя таблицы базы данных
Возвращает
строкаИмя таблицы базы данных для заданного класса
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::tableizeunderscore()source public static
underscore( string $camelCasedWord )
Возвращает заданное слово camelCasedWord в виде слова с подчеркиваниями underscored_word.
Параметры
- строка
$camelCasedWord - Слово в формате camelCase, которое нужно преобразовать
Возвращает
строкаВерсия $camelCasedWord с подчеркиваниями
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::underscorevariable()source public static
variable( string $string )
Возвращает версию подчёркнутой строки в формате camelCase.
Параметры
- строка
$string - Строка, которую нужно преобразовать.
Возвращает
строкаСтрока в формате camelCase
Ссылка
https://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::variableПодробное описание свойств
$_initialStatesource
protected static массив
Начальное состояние Inflector, для работы функции reset().
array()
$_pluralsource
protected static массив
Правила множественного числа
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'
)
) $_singularsource
protected static массив
Правила единственного числа
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',
)
) $_transliterationsource
protected static массив
Список соответствий символов с диакритикой и специальных символов ASCII символам.
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',
) $_uninflectedsource
protected static массив
Слова, которые не должны склоняться
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–2017 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.10/class-Inflector.html