composer似乎在今天已经成为phper安装第三方扩展包的标准方式了,不用composer安装似乎已经落伍了,那今天就给大家推荐一个composer库,那就是doctrine/inflector
### 介绍
doctrine/inflector是转换单词大小写、单复数格式的一个小型类库,什么意思呢,简单举例如下:
- 将category转成categories
- 将users转成user
- 将post转成Post,将post_category转成PostCategory
- 将Post转成post,PostCategory转成post_category
### 使用场景
- 用于数据表名称和model名称的转换
用过一些开源框架的同学应该都知道,表名称一般都是小写,有的关系表还是table_name这种格式的,但我们的model名称习惯都是驼峰式User,UserModel这种格式;还有的项目规范要求表名称都是复数格式,model都是单数形式,这时候这个类库就发挥作用了。
### 安装
```php
composer require doctrine/inflector
```
### 使用
```php
build();
//Converts ModelName to model_name
echo $inflector->tableize('UserCategory'); // user_category
//Converts model_name to ModelName:
echo $inflector->classify('user_category'); // UserCategory
//This method uses Classify and then converts the first character to lowercase:
echo $inflector->camelize('model_name'); // modelName
//Returns a word in plural form.
echo $inflector->pluralize('category'); // categories
//Returns a word in singular form.
echo $inflector->singularize('users'); // user
```
### 常用方法说明
- tableize(string $word)
```php
//将ModelName格式转成model_name格式
echo $inflector->tableize('ModelName'); // model_name
```
- classify(string $word)
```php
//将model_name转成驼峰ModelName格式
echo $inflector->classify('model_name'); // ModelName
```
- camelize(string $word)
```php
//将model_name转成首字母小写的驼峰格式modelName
echo $inflector->camelize('model_name'); // modelName
```
- pluralize(string $word)
```php
//将category单数形式转成复数形式
echo $inflector->pluralize('category'); // categories
```
- singularize(string $word)
```php
//复数users形式转成user单数形式
echo $inflector->singularize('users'); // user
```
### 其它
当然doctrine/inflector类库还提供其它用途的函数方法,不过用的最多的应该就是这几个了,更多方法可以参考[doctrine/inflector](https://github.com/doctrine/inflector)的github仓库