`
hudeyong926
  • 浏览: 2031628 次
  • 来自: 武汉
社区版块
存档分类
最新评论

YII 快速创建项目GII

 
阅读更多

Yii 是一个基于组件、纯OOP的、用于开发大型 Web 应用的高性能PHP框架。

它将Web编程中的可重用性发挥到极致,能够显著加速开发进程
Yii适合大流量的应用,如门户、BBS、CMS及B2B系统等,功能丰富,性能优异

 

1.在环境变量里添加 E:\yii framework;
2.在环境变量里添加 E:\wamp\bin\php(不添加提示php.exe不是内部命令)或yiic.bat中PHP_COMMAND= E:\wamp\bin\php.exe

3.开启pdo,pdo_数据库扩展

为了使用上面提到的 yiic 工具,CLI PHP 程序必须在命令搜索路径内(译者注:即php.exe 所在的目录必须在PATH环境变量中 ),注销后path配置会生效

 

1.通过cmd自动化的代码生成项目骨架

% cd WebRoot
% php YiiRoot/framework/yiic webapp "E:\Apache2\htdocs\test"

建立数据库连接

要在我们创建的程序骨架中使用这个数据库,我们需要修改它的应用配置 ,它保存在PHP脚本/protected/config/main.php 中。

执行data/schema.sqlite.sql脚本,连接sqlite配置

'db'=>array(
	'connectionString' => 'sqlite:protected/data/blog.db',
	'tablePrefix' => 'tbl_',
),

 执行schema.mysql.sql脚本,连接mysql配置

'db'=>array(
	'connectionString' => 'mysql:host=localhost;dbname=blog',
	'emulatePrepare' => true,
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
	'tablePrefix' => 'tbl_',
),

2.创建,读取,更新,删除 (CRUD) 是应用的数据对象中的四个基本操作。由于在Web应用的开发中实现CURD的任务非常常见,Yii 为我们提供了一些可以使这些过程自动化的代码生成工具,名为 Gii

首先我们需要安装 Gii. 打开文件protected/config/main.php ,添加如下代码:

'import'=>array(
	'application.models.*',
	'application.components.*',
),

'modules'=>array(
	// uncomment the following to enable the Gii tool
	
	'gii'=>array(
		'class'=>'system.gii.GiiModule',
		'password'=>'sa',
		//ipFilters用于所在服务器不在本机的情况需开启  
		//'ipFilters'=>array('192.168.1.10','::1'),  
	),		
),

上面的代码安装了一个名为 gii 的模块,这样我们就可以通过在浏览器中浏览如下URL来访问 Gii 模块:
http://localhost/test/index.php?r=gii,在弹出的窗口中输入sa。如下图

创建模型 Model
首先我们需要为每个数据表创建一个模型(Model)类 。模型类会使我们可以通过一种直观的、面向对象的风格访问数据库。稍后我们将会看到这一点。视图可以生成model,视图没有主键model需要加入primaryKey方法
点击 Model Generator 链接开始使用模型创建工具。
在 Model Generator 页中,在Table Name一栏输入 tbl_user (用户表的名字),
然后按下 Preview 按钮。一个预览表将显示在我们面前。我们可以点击表格中的链接来预览要生成的代码。如果一切OK,

我们可以按下 Generate 按钮来生成代码并将其保存在一个文件中。
生成的protected/models/User.php包含了继承自 CActiveRecord 的 User 类,可用于访问 tbl_user 数据表;

实现CRUD操作
模型类建好之后,我们就可以使用 Crud Generator来创建为这些模型实现CRUD操作的代码了。我们将对User模型执行此操作。
在 Crud Generator 页面中,Model Class 一栏输入User(就是我们刚创建的User模型的名字models/User.php) ,然后按下 Preview 按钮。
我们会看到有很多文件将被创建。按下Generate按钮来创建它们。

 

这样,我们就使用 yiic工具 生成了对于user表的增删改查。使用

http://localhost/test/index.php?r=user 

访问下,试试

多模块(modules)设计

选择Module Generator-->在Module ID 输入框中输入要添加的模块(例如test)-->点击Preview按钮-->点击Generate按钮.至此,test模块便添加完成。对应目录为/protected/modules/test目录

新加模块访问地址为:http://website/index.php?r=test

 

(中级)自定义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() 来翻译属性标签:

public function attributeLabels()
{
    return array(
<?php foreach($labels as $name=>$label): ?>
            <?php echo "'$name' => Yii::t('application', '$label'),\n"; ?>
<?php endforeach; ?>
    );
}

在每个代码模板中,我们可以访问一些预定义的变量,例如上面例子中的 $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放到项目目录下面,配置如下

'modules' => array(
    'gii' => array(
	    'class' => 'system.gii.GiiModule',
	    'password' => 'gii',
	    'generatorPaths' => array(
            'application.gii.generators',//项目目录结构
        ),
        'ipFilters' => array('127.0.0.1', '::1'),
    ),
),

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

 
 
 
  • 大小: 19 KB
  • 大小: 49.7 KB
  • gii.zip (10.2 KB)
  • 下载次数: 1
分享到:
评论

相关推荐

    YII框架开源项目

    5. **自动代码生成**:通过Gii工具,开发者可以快速生成模型、控制器、表单以及CRUD操作的代码,大大提高了开发效率。 6. **RESTful API支持**:Yii支持构建RESTful风格的API,便于与其他系统进行数据交互,适合...

    yii中gii自动生成模板中文化步骤及下载

    Gii是Yii框架内置的一个代码生成工具,能够帮助开发者快速生成常见的CRUD(创建、读取、更新、删除)操作代码,极大地提高了开发效率。在Yii中,我们不仅可以利用Gii生成基础的模型、控制器和视图,还可以自定义模板...

    Yii2框架Gii模块 RCE 分析 .pdf

    Yii2框架是一个高性能的PHP框架,专为快速开发现代Web应用程序而设计。它采用MVC(Model-View-Controller)架构模式,具有组件化的特性,使得代码可读性高且易于扩展。Yii2的高性能主要源于其精心设计的缓存支持,这...

    Laravel开发-yii2-giiall

    Gii是Yii2框架的一个内置工具,它提供了一个直观的用户界面和API,用于快速生成CRUD(创建、读取、更新、删除)操作以及模型、控制器、视图等代码,极大地提高了开发效率。 首先,让我们深入了解Laravel。Laravel是...

    Yii快速入门教程+2.0中文手册

    然后在命令行中使用Composer创建一个新的Yii项目,执行`composer create-project yiisoft/yii2-app-basic`或`yiisoft/yii2-app-advanced`命令,根据需要选择基础版或高级版模板。 3. **目录结构** Yii的目录结构...

    Yii框架快速入门

    安装完成后,使用Yii的命令行工具`yiic`或`yii`(取决于你的Yii版本)来创建新的项目结构。记得配置好Web服务器,如Apache或Nginx,以便正确解析Yii的URL规则。 三、基本架构 1. Model:模型代表数据逻辑,通常是...

    深入浅析yii2-gii自定义模板的方法

    官方提供了Yii2-gii工具,该工具大大简化了开发过程,尤其是通过其代码生成器可以快速创建模型、CRUD(创建、读取、更新、删除)操作和各种模块。 但有时候Yii2-gii生成器提供的模板并不能完全满足开发者的所有需求...

    Yii快速入门教程(完全整理)

    "yii框架中文手册教程.pdf" 和 "Yii快速入门教程(完全整理).pdf" 这两个文档将帮助初学者更好地理解和掌握Yii框架。中文手册详尽解释了框架的每个部分,而入门教程则通过实例教学,让你快速上手。 总之,Yii是一个...

    yii的小部件使用

    通过对Yii框架中小部件的使用以及利用gii工具快速生成增删改查功能的学习,我们可以看到,通过合理利用这些工具和技术,可以极大地提高Web应用的开发效率。特别是在处理常见的CRUD操作时,利用gii工具自动生成代码...

    yii-advanced-app-2.0.4

    在开发过程中,Yii 2 提供了 Gii 工具,这是一个自动生成代码的工具,可以帮助快速创建模型、控制器、视图等基础结构。此外,Yii 还支持 RESTful API 开发,使得构建 Web 服务更加便捷。 总的来说,"yii-advanced-...

    Yii 2文件下载

    4. **Gii**:这是一个代码生成工具,可以帮助快速生成CRUD(创建、读取、更新、删除)操作和其他基础代码。 5. **Bootstrap**和**jQuery**:可能已经预装,作为前端开发的基础框架。 6. **文档**:可能包含Yii 2.0的...

    yii1.1.10 开发包(包含yii权威指南以及yii博客例子讲解)

    在提供的“yii权威指南”中,你将找到关于Yii框架全面而深入的介绍,包括如何安装和配置环境,创建项目,理解框架的基本概念,以及如何利用其特性进行开发。这是一份非常有价值的参考文档,无论你是初学者还是有经验...

    yii blog全中文注释0.85版

    在“yii blog”项目中,你可以看到如何创建和管理博客文章。"models"目录下通常包含表示数据库表的类,如Article模型,用于处理数据验证和数据库交互。"controllers"目录下的控制器如BlogController会处理HTTP请求,...

    Yii框架学习笔记

    同时,Yii还提供了Gii自动代码生成工具,可以帮助快速创建后台模块,并根据需要连接数据库。 在布局方面,Yii支持布局文件(Layout),如`colum1.php`,用于定义全局的页面结构。通过`render()`方法,视图渲染会...

    Laravel开发-yii2-artisan-bridge

    Yii2的Gii主要用于自动生成CRUD(创建、读取、更新、删除)操作的代码,以及模型、控制器、视图和其他基础架构元素。然而,对于一些特定的定制需求,Artisan的强大命令集可能会更吸引开发者。 "Laravel开发-yii2-...

    yii-1.0.4.r920

    7. 表单和验证:Yii 提供了方便的表单处理和数据验证工具,可以快速创建和验证用户输入,减少错误和安全风险。 8. 视图助手:Yii 视图助手系统提供了一系列预定义的函数,如 HTML 助手,URL 助手等,方便开发者生成...

Global site tag (gtag.js) - Google Analytics