📜  Gii-生成模块(1)

📅  最后修改于: 2023-12-03 14:41:24.613000             🧑  作者: Mango

Gii - 生成模块

介绍

Gii (Yii的代码生成器) 是一个Yii2框架的内置工具,它通过生成代码,简化了应用程序的开发流程。它可以帮助我们快速生成模型(Model),控制器(Controller),模块(Module),表单(Form)等基本代码结构,并且还可以生成部分基本操作的CRUD(增删改查)功能。使用Gii生成模块,可以省去我们大量编写重复代码的时间,提高了开发效率。

使用

在浏览器中进入我们的应用程序,然后输入以下地址即可启动Gii工具:http://yourdomain.com/gii,在此之前,我们需要在配置文件中配置好Gii模块的访问密钥。

if (YII_ENV_DEV) {
    // 配置gii模块
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        'allowedIPs' => ['127.0.0.1', '::1'], // 指定IP,只有在这些IP下才能访问
        'generators' => [// 模板生成器
            'crud' => [
                'class' => 'yii\gii\generators\crud\Generator',
                'templates' => [ // 一个或多个生成器的视图模板,用于覆盖生成器默认的文件
                    'myCrud' => '@app/templates/gii/crud/default',
                ]
            ],
            'model' => [
                'class' => 'yii\gii\generators\model\Generator',
                'templates' => [
                    'myModel' => '@app/templates/gii/model/default',
                ]
            ],
        ], 
    ];
}

值得注意的是,Gii只在开发环境下可用,所以我们需要先确保我们是使用的开发环境。

接下来我们可以看一下使用Gii工具生成的详细步骤。

生成基本代码
  1. 打开Gii工具,找到需要生成的类型

  1. 填写必要的表单信息

  1. 点击生成按钮,等待Gii生成代码。

自动生成CRUD模板
  1. 打开Gii工具,找到需要生成的CRUD模板类型

  1. 填写必要的表单信息

  1. 点击生成按钮,等待Gii生成CRUD代码。

自定义生成器模板

我们可以自定义生成器的模板文件,在生成器类的配置文件中指定新的视图文件夹。例如,我们想要更改默认的 CRUD 模板,可以按照以下步骤进行修改。

  1. 在config目录下创建新的模板文件夹
mkdir -p /path/to/myapp/templates/gii/crud/default
  1. 将模板文件复制到templates文件夹中,以覆盖默认的模板文件
cp -Rfv /path/to/myapp/vendor/yiisoft/yii2-gii/generators/crud/default/* \
/path/to/myapp/templates/gii/crud/default/
  1. 修改配置文件

在生成器的配置选项中,使用templates参数,将视图路径指向自定义模板所在的文件夹。

$config['modules']['gii']['generators'] = [
    'crud' => [
        'class' => yii\gii\generators\crud\Generator::class,
        'templates' => ['mycrud' => '@myapp/templates/gii/crud/default'],
    ],
];
总结

Gii生成模块可以帮助我们在Yii2框架开发过程中快速生成模型(Model),控制器(Controller),模块(Module),表单(Form)等基本代码结构。通过自定义模板,Gii还可以帮助我们生成相应的视图文件,大大提高了我们的开发效率。同时,Gii也是YII2中极其优秀的一个工具,在后期项目维护和开发中,它也能够节约极多的时间和精力,提高开发效率。