Yii2 自定义Gii生成代码模板

我们使用一个例子来介绍如何定制代码模板。假设我们想要定制由 model 生成器生成的代码。
我们首先创建一个名为 protected/gii/model/templates/customer 的目录。这里的model意味着我们将要
override 默认的 model
生成器。templates/customer意味着我们将增加一个新的代码模板集名为customer。复制文件
framework/gii/generators/model/templates/default/model.php 到
protected/gii/model/templates/customer。现在是时候做点真正的工作了。打开文件
protected/gii/model/templates/customer/model.php
以编辑它。记得这个文件将作为类似一个视图文件被使用,意味着它可以包含 PHP 表达式和语句。让我们更改模板以便生成的代码里
attributeLabels() 方法使用 Yii::t() 来翻译属性标签:

  1. public function attributeLabels()
  2. {
  3. return array(
  4. <?php foreach($labels as $name=>$label): ?>
  5. <?php echo "‘$name‘ => Yii::t(‘application‘, ‘$label‘),\n"; ?>
  6. <?php endforeach; ?>
  7. );
  8. }

在每个代码模板中,我们可以访问一些预定义的变量,例如上面例子中的 $labels
。这些变量由对应的代码生成器提供。不同的代码生成器可能在他们的代码模板中提供不同的变量。请认真阅读默认代码模板中的描述。
现在打开 model 代码生成器页面。点击 Code Template 输入框。我们应当看到一个下拉列表
,这个列表包含了我们新建的模板目录 customer。我们选择此模板生成代码文件。

框架生成Controller的模板为:framework/gii/generators/controller/templates/default/controller.php
框架生成Model的模板为:framework/gii/generators/model/templates/default/model.php

高级 )创建新的生成器

在framework/gii/generators创建widget文件夹,可以编写支持module的Crud Generator,moduleID下model class的写法application.modules.moduleID.models.modelClass

可以把自己扩展的gii放到项目目录下面,配置如下

  1. ‘modules‘ => array(
  2. ‘gii‘ => array(
  3. ‘class‘ => ‘system.gii.GiiModule‘,
  4. ‘password‘ => ‘gii‘,
  5. ‘generatorPaths‘ => array(
  6. ‘application.gii.generators‘,//项目目录结构
  7. ),
  8. ‘ipFilters‘ => array(‘127.0.0.1‘, ‘::1‘),
  9. ),
  10. ),

上面的配置告诉
Gii在别名是application.gii.generators的目录中寻找生成器,以及默认的framework位置
system.gii.generators在不同的搜索路径有同名的生成器也是可以的。这种情况下,在
GiiModule::generatorPaths 指定目录中先出现的生成器有优先权

时间: 2024-12-21 03:22:26

Yii2 自定义Gii生成代码模板的相关文章

yii2使用Gii生成代码

本章节将介绍如何使用 Gii 去自动生成 Web 站点常用功能的代码.使用 Gii 生成代码非常简单,只要按照 Gii 页面上的介绍输入正确的信息即可. 贯穿本章节,你将会学到: 在你的应用中开启 Gii 使用 Gii 去生成活动记录类 使用 Gii 去生成数据表操作的增查改删(CRUD)代码 自定义 Gii 生成的代码 开始 Gii Gii 是 Yii 中的一个模块.可以通过配置应用的 [[yii\base\Application::modules|modules]] 属性开启它.通常来讲在 

YII2框架 Gii生成CURD 的问题

今天在学习YII2 creating Module 过程当中 遇到问题创建Module后  然后添加CRUD过程里 VIEW PATH路径问题 导致了 无法在指定路径生成CRUD文件 文件全部生成到了WEB目录下   解决方案是 @app\views\companies  在指定路径前加@app\ 然后继续填写好路径 就可以了.!

关于yii2 试用gii生成的代码,驼峰命名的控制器使用

最后使用的链接 http://www.demo.com/index.php?r=system-admin 对照的文件 新修改 http://www.demo.com/index.php?r=system/admin 对应的文件路径

yii2中一个神奇的工具,gii生成模型,gii生成CURD视图页面

1.配置自己的虚拟主机,然后使用gii生成模型视图等 http://admin.zstp.com/index.php?r=gii 2.gii组件介绍 3.创建生成一个模型 4.使用gii创建CURD视图

YII2使用gii

在 config/web.php 文件中会有以下配置代码开启该模块: $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', // uncomment the following to add your IP if you are not connecting from localhost. //'allowedIPs' => ['127.0.0.1', '::1'],

Yii2 使用 faker 生成假数据

Yii2使用 faker 生成假数据. 1. config\console.php 中添加一条配置信息 'controllerMap' => [ 'fixture' => [ 'class' => 'yii\faker\FixtureController', ], ], 注意顶部,定义test测试目录的位置的代码. Yii::setAlias('@tests', dirname(__DIR__) . '/tests'); 2. 创建生成假信息的模版文件 在test目录下面依次新建unit

ThinkPHP 类似Yii的Gii生成Model的功能。

ThinkPHP 类似Yii的Gii生成Model的功能.自动生成ThinkPhp 3.1 的基础模型.. 1 #!/usr/bin/env php 2 <?php 3 /** 4 * 5 * THINKPHP 基础模型生成工具 6 * 使用方法 7 * 命令行: php 本php文件 表名字 8 * 然后复制生成好的代码 9 * 10 * 11 */ 12 13 14 $host = 'localhost'; 15 $user = 'root'; 16 $pass = 'root'; 17 1

Mybatis框架(9)---Mybatis自定义插件生成雪花ID做为表主键项目

Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫. 1.Mybatis框架---Mybatis插件原理 2.java算法---静态内部类实现雪花算法 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用. 一.项目概述 1.项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主

VS2010快速生成代码模板功能介绍

一只程序猿的生产效率很重要.生成效率高了,老板喜欢你,妹子崇拜你,你也可以给自己节省很多时间. 加班的一般都是新手程序猿,除了对语言和技术不熟悉,工具也是很影响生成效率的因素.我们知道,猿和其他动物最大的区别在于,猿会使用工具.所以这一系列我将介绍一下如何用好手头的工具来帮助我们提高效率. 今天我们来看看如何在Visual Studio 2010中用内置的模板快速生成代码片段. 代码模板就是预先定义好的一个代码片段.VS中,我们只要输入模板的名称,然后连按两下TAB,VS就可以给我们把代码片段补