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