Yii 的修行之路 - Gii 代码生成器

简述

Gii 是一个强大的代码生成器,主要用于后台代码生成。

开始 Gii

Gii 是 Yii 中的一个模块。可以通过配置应用的 yiibaseApplication::modules 属性开启它。通常来讲在 config/web.php 文件中会有以下配置代码:

$config = [ ... ]; if (YII_ENV_DEV) {     $config['bootstrap'][] = 'gii';     $config['modules']['gii'] = 'yii\gii\Module'; }

这段配置表明,如果当前是开发环境,应用会包含 gii 模块,模块类是 yiigiiModule。

如果你检查应用的入口脚本 web/index.php,将看到这行代码将 YII_ENV_DEV 设为 true:

defined('YII_ENV') or define('YII_ENV', 'dev');

鉴于这行代码的定义,应用处于开发模式下,按照上面的配置会打开 Gii 模块。你可以直接通过 URL 访问 Gii:

http://hostname/index.php?r=gii

补充: 如果你通过本机以外的机器访问 Gii,请求会被出于安全原因拒绝。你可以配置 Gii 为其添加允许访问的 IP 地址:

'gii' => [    'class' => 'yii\gii\Module',    'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // 按需调整这里],

想要覆写已存在文件,选中 “overwrite” 下的复选框然后点击 “Generator”。如果是新文件,只点击 “Generator” 就好。

接下来你会看到一个包含已生成文件的说明页面。如果生成过程中覆写过文件,还会有一条信息说明代码是重新生成覆盖的。

生成 CRUD 代码

CRUD 代表增,查,改,删操作,这是绝大多数 Web 站点常用的数据处理方式。

选择 Gii 中的 “CRUD Generator” (点击 Gii 首页的链接)去创建 CRUD 功能。例如:

  1. Model Class: appmodelsCountry

  2. Search Model Class: appmodelsCountrySearch

  3. Controller Class: appcontrollersCountryController

然后点击 “Preview” 按钮。你会看到下述将要生成的文件列表。

如果你之前创建过 controllers/CountryController.php 和 views/country/index.php 文件,选中 “overwrite” 下的复选框覆写它们(之前的文件没能全部支持 CRUD)。

试运行

用浏览器访问下面的 URL 查看生成代码的运行:

http://hostname/index.php?r=country/index

可以看到一个栅格显示着从数据表中读取的国家数据。支持在列头对数据进行排序,输入筛选条件进行筛选。

下面列出由 Gii 生成的文件,以便你研习功能和实现,或修改它们:

  1. 控制器:controllers/CountryController.php

  2. 模型:models/Country.php 和 models/CountrySearch.php

  3. 视图:views/country/*.php

  4. 补充:Gii 被设计成高度可定制和可扩展的代码生成工具。使用它可以大幅提高应用开发速度。

使用 Gii 生成代码

1、Gii 是一个基于 web 界面的代码生成工具。

2、Model Generator 创建模型类代码时,注意表名(Table Name)和模型类的对应(Model Class);命名空间路径(Namespace)的确认。

3、CURD Generator 生成代码时,注意调用的模块目录所在路径,在设置路径时注意 Model 和 Search 的路径,还有其他类路径(Controller 和 View)的设置,避免出现路径错误的问题。

关键字:php, yii

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部