Class yii\helpers\BaseInflector
继承 | yii\helpers\BaseInflector |
---|---|
子类 | yii\helpers\Inflector |
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/helpers/BaseInflector.php |
BaseInflector 为 yii\helpers\Inflector 提供了具体的实现方法。
不要使用 BaseInflector 类。使用 yii\helpers\Inflector 类来代替。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$plurals | array | 把一个词转换成复数形式的规则。 键是正则表达式,值是相应的替换。 | yii\helpers\BaseInflector |
$singulars | array | 把一个词转换成单数形式的规则。 键是正则表达式,值是相应的替换。 | yii\helpers\BaseInflector |
$specials | array | 在复数形式和单数形式之间转换单词的特殊规则。 关键字是单数形式的特殊词,值是对应的复数形式。 | yii\helpers\BaseInflector |
$transliteration | array | 当 intl 不可用时 transliterate() 所使用的音译回退映射。 | yii\helpers\BaseInflector |
$transliterator | mixed | 可以使用 \Transliterator,也可以使用字符串构建 \Transliterator 构建用于音译的 \Transliterator。 当 intl 可用时,由 transliterate() 使用。默认为 TRANSLITERATE_LOOSE | yii\helpers\BaseInflector |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
camel2id() | 将 CamelCase 名称转换成小写 ID 单词。 可以使用指定的字符连接 ID 中的单词(默认 '-')。 例如,'PostTag' 将被转成 'post-tag'。 | yii\helpers\BaseInflector |
camel2words() | 转换一个 CamelCase 命名的名称为以空格分隔的单词。 例如,'PostTag' 将转换成 'Post Tag'。 | yii\helpers\BaseInflector |
camelize() | 返回以 CamelCase 格式给出的单词。 | yii\helpers\BaseInflector |
classify() | 将表名转换为其类名。 | yii\helpers\BaseInflector |
humanize() | $word 返回人类可读的字符串。 | yii\helpers\BaseInflector |
id2camel() | 转换 ID 成一个 CamelCase 名称。
ID 中以 $separator 分隔的单词(默认 '-')将连接到 CamelCase 名称中。
例如,'post-tag' 将被转换成 'PostTag'。 |
yii\helpers\BaseInflector |
ordinalize() | 将数字转换为英文序数形式。例如,将 13 转成 13th,2 转成 2nd . | yii\helpers\BaseInflector |
pluralize() | 将一个单词转换为其复数形式。 注意,这只适用于英语! 例如,'apple' 将变成复数形式 'apples',并且 'child' 将变成复数形式 'children'。 | yii\helpers\BaseInflector |
sentence() | 将单词列表转换为句子。 | yii\helpers\BaseInflector |
singularize() | 返回 $word 的单数。 | yii\helpers\BaseInflector |
slug() | 返回一个字符串,其中所有空格都转换为给定的替换, 去掉非单词字符,将其余字符音译。 | yii\helpers\BaseInflector |
tableize() | 将类名转换为其表名(复数)命名约定。 | yii\helpers\BaseInflector |
titleize() | 将带下划线或驼峰大小写的单词 转换为英语句子。 | yii\helpers\BaseInflector |
transliterate() | 返回字符串的音译版本。 | yii\helpers\BaseInflector |
underscore() | 转换一些 "CamelCased" 成 "underscored_word"。 | yii\helpers\BaseInflector |
variablize() | 与 camelize 相同,但是第一个 char 是小写的。 | yii\helpers\BaseInflector |
常量
常量 | 值 | 描述 | 被定义在 |
---|---|---|---|
TRANSLITERATE_LOOSE | 'Any-Latin; Latin-ASCII; [\u0080-\uffff] remove' | 为 Any-Latin; Latin-ASCII; [\u0080-\uffff] 提供移除规则的快捷方式。
规则是宽松的,
字母将与基本拉丁 Unicode 块的字符进行音译。
例如:
获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? 会被音译成
huo qu dao dochira Ukrainska: g,e, Srpska: d, n, d! Espanol?`。
在 transliterate() 中使用。
有关详细信息,请参阅 unicode normalization forms |
yii\helpers\BaseInflector |
TRANSLITERATE_MEDIUM | 'Any-Latin; Latin-ASCII' | 为 Any-Latin; Latin-ASCII 提供快捷的音译规则。
规则是中等的,字母将被转换为 Latin-1(ISO 8859-1)ASCII 表中的字符。
例如:
获取到 どちら Українська: ґ,є, Српска: ђ, њ, џ! ¿Español? 会被音译成
huo qu dao dochira Ukrainsʹka: g,e, Srpska: d, n, d! ¿Espanol? 。
在 transliterate() 中使用。
有关详细信息,请参阅 unicode normalization forms |
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 normalization forms |
yii\helpers\BaseInflector |
属性详情
把一个词转换成复数形式的规则。 键是正则表达式,值是相应的替换。
把一个词转换成单数形式的规则。 键是正则表达式,值是相应的替换。
在复数形式和单数形式之间转换单词的特殊规则。 关键字是单数形式的特殊词,值是对应的复数形式。
当 intl 不可用时 transliterate() 所使用的音译回退映射。
可以使用 \Transliterator,也可以使用字符串构建 \Transliterator 构建用于音译的 \Transliterator。 当 intl 可用时,由 transliterate() 使用。默认为 TRANSLITERATE_LOOSE
参见 http://php.net/manual/en/transliterator.transliterate.php.
方法详情
将 CamelCase 名称转换成小写 ID 单词。 可以使用指定的字符连接 ID 中的单词(默认 '-')。 例如,'PostTag' 将被转成 'post-tag'。
public static string camel2id($name, $separator = '-', $strict = false) | ||
$name | string | 将被转换的字符串 |
$separator | string | 用于连接 ID 中的单词的字符 |
$strict | boolean|string | 是否在两个连续大写字符之间插入分隔符,默认 false |
return | string | 生成的结果 ID |
---|
转换一个 CamelCase 命名的名称为以空格分隔的单词。 例如,'PostTag' 将转换成 'Post Tag'。
public static string camel2words($name, $ucwords = true) | ||
$name | string | 将被转换的字符串 |
$ucwords | boolean | 是否将每个单词的第一个字母大写 |
return | string | 返回这个单词的结果 |
---|
返回以 CamelCase 格式给出的单词。
将 "send_email" 之类的单词转换为 "SendEmail"。 它将从单词中删除非字母数字字符, 所以 "who's online" 将被转换为 "WhoSOnline"。
参见 variablize().
public static string camelize($word) | ||
$word | string | 转成驼峰的单词 |
将表名转换为其类名。
例如,将 "people" 转换成 "Person"。
public static string classify($tableName) | ||
$tableName | string |
protected static boolean hasIntl() | ||
return | boolean | 如果 intl 扩展已加载 |
---|
$word 返回人类可读的字符串。
public static string humanize($word, $ucAll = false) | ||
$word | string | 字符串要人性化 |
$ucAll | boolean | 是否将所有单词设置为大写 |
转换 ID 成一个 CamelCase 名称。
ID 中以 $separator
分隔的单词(默认 '-')将连接到 CamelCase 名称中。
例如,'post-tag' 将被转换成 'PostTag'。
public static string id2camel($id, $separator = '-') | ||
$id | string | ID 将被转换 |
$separator | string | 用于分隔 ID 中单词的字符 |
return | string | 返回结果 CamelCase 命名 |
---|
将数字转换为英文序数形式。例如,将 13 转成 13th,2 转成 2nd .
..
public static string ordinalize($number) | ||
$number | integer | 获取其序数值的数字 |
将一个单词转换为其复数形式。 注意,这只适用于英语! 例如,'apple' 将变成复数形式 'apples',并且 'child' 将变成复数形式 'children'。
public static string pluralize($word) | ||
$word | string | 将要转换为复数形式的单词 |
return | string | 复数词 |
---|
将单词列表转换为句子。
最后几句话要特别处理。例如,
$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 | 连接最后两个单词的字符串。
如果这是空的,它将获取 |
$connector | string | 连接单词的字符串, 而不是由 $lastWordConnector 和 $twoWordsConnector 连接的单词。 |
return | string | 生成的句子 |
---|
返回 $word 的单数。
public static string singularize($word) | ||
$word | string | 将英语单词单数化 |
return | string | 单数名词。 |
---|
返回一个字符串,其中所有空格都转换为给定的替换, 去掉非单词字符,将其余字符音译。
如果 intl 扩展不可用,则使用仅转换拉丁字符的回退 然后把剩下的移除。 您可以通过 $transliteration 属性自定义字符映射。
public static string slug($string, $replacement = '-', $lowercase = true) | ||
$string | string | 要转换的任意字符串 |
$replacement | string | 用于空格的替换 |
$lowercase | boolean | 是否返回小写字符串。默认是 |
return | string | 转换后的字符串。 |
---|
将类名转换为其表名(复数)命名约定。
例如,"Person" 转换成小写 "people"。
public static string tableize($className) | ||
$className | string | 获取相关 table_name 的类名 |
将带下划线或驼峰大小写的单词 转换为英语句子。
public static string titleize($words, $ucAll = false) | ||
$words | string | |
$ucAll | boolean | 是否将所有单词设置为大写 |
返回字符串的音译版本。
如果 intl 扩展不可用,使用仅转换拉丁字符的回滚 然后把剩下的移除。 您可以通过 $transliteration 属性自定义字符映射。
public static string transliterate($string, $transliterator = null) | ||
$string | string | 输入字符串 |
$transliterator | string|\Transliterator | 可以是 \Transliterator 或者字符串从中可以构建 \Transliterator。 |
转换一些 "CamelCased" 成 "underscored_word"。
public static string underscore($words) | ||
$words | string | 带下划线的 word(s) |
与 camelize 相同,但是第一个 char 是小写的。
将 "send_email" 之类的单词转换为 "sendEmail"。 它将从单词中删除非字母数字字符, 所以 "who's online" 将被转换成 "whoSOnline"。
public static string variablize($word) | ||
$word | string | To lowerCamelCase |