Класс 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 Лицензия
Расположение: Cake/Utility/Inflector.php
Краткое описание свойств
- Массив кэша методов.
array - Начальное состояние Inflector для работы reset().
array - Правила склонения множественного числа
array - Правила склонения единственного числа
array - Стандартное отображение на аск. символы с диакритикой и специальных символов.
array - Слова, которые не должны склоняться
array
Краткое описание методов
- Кэширование склоненных значений и возврат, если значение уже доступно.
- Возвращает переданное слово в нижнем регистре с подчеркиваниями в виде слова с заглавной буквой каждого слова.
- Возвращает имя класса Cake модели ("Человек" для таблицы базы данных "люди") для заданной таблицы базы данных.
-
Возвращает переданную строку с подчеркиваниями в виде читаемой строки. (Подчеркивания заменяются пробелами, а слова после пробелов записываются с большой буквы).
- Возвращает слово в форме множественного числа.
-
Очищает кэш склоненных значений Inflector и восстанавливает правила склонения до начальных значений.
- Добавляет пользовательские правила склонения типа 'множественное число', 'единственное число' или 'транслитерация'.
- Возвращает слово в форме единственного числа.
-
Возвращает строку, в которой все пробелы заменены на подчеркивания (по умолчанию), символы с диакритикой заменены на символы без диакритики, а небуквенные символы удалены.
- Возвращает соответствующее имя таблицы для заданного класса модели. ("люди" для класса модели "Человек").
- Возвращает переданное слово с заглавными буквами каждого слова в виде слова с подчеркиваниями.
- Возвращает версию строки с подчеркиваниями в формате верблюжьей нотации.
Подробное описание методов
_cache()source protected static
_cache( string $type , string $key , string $value false )
Кэширование склоненных значений и возврат, если значение уже доступно
Параметры
- строка
$type - Тип склонения
- строка
$key - Исходное значение
- строка
$valueнеобязательно false - Склоненное значение
Возвращает
строкаСклоненное значение из кэша
camelize()source public static
camelize( string $lowerCaseAndUnderscoredWord )
Возвращает переданное слово в нижнем регистре с подчеркиваниями в виде слова с заглавной буквой каждого слова.
Параметры
- строка
$lowerCaseAndUnderscoredWord - Слово для преобразования
Возвращает
строкаПреобразованное слово. Например: LikeThis.
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::camelizeclassify()source public static
classify( string $tableName )
Возвращает имя класса Cake модели ("Человек" для таблицы базы данных "люди") для заданной таблицы базы данных.
Параметры
- строка
$tableName - Имя таблицы базы данных, для которой нужно получить имя класса
Возвращает
строкаИмя класса
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::classifyhumanize()source public static
humanize( string $lowerCaseAndUnderscoredWord )
Возвращает переданную строку с подчеркиваниями в виде читаемой строки. (Подчеркивания заменяются пробелами, а слова после пробелов записываются с большой буквы).
Параметры
- строка
$lowerCaseAndUnderscoredWord - Строка, которую нужно сделать более читаемой
Возвращает
строкаЧитаемая строка
Ссылка
http://book.cakephp.org/2.0/ru/core-utility-libraries/inflector.html#Inflector::humanizepluralize()source public static
pluralize( string $word )
Возвращает слово в форме множественного числа.
Параметры
- строка
$word - Слово в форме единственного числа
Возвращает
строкаСлово во множественном числе
Ссылка
http://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 )
Добавляет пользовательские правила склонения типа 'множественное число', 'единственное число' или 'транслитерация'.
Использование:
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()source 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
$replacementнеобязательно '_' - будет заменять ключи в отображении
Возвращает
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Версия слова с подчеркиванием для $camelCasedWord
Ссылка
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.
https://api.cakephp.org/2.9/class-Inflector.html