这些步骤是转贴的。我按照这些步骤完成设置。最后几行是我自己的心得。 一、设置yii的gii。 自动生成代码从版本1.1.2开始,yii 装备了一个基于 web 的代码生成工具,叫做 gii。它替代之前的 yiic shell 生成工具(它运行在命令行)。在这一小节中,我们将描述
这些步骤是转贴的。我按照这些步骤完成设置。最后几行是我自己的心得。
一、设置yii的gii。
自动生成代码从版本1.1.2开始,yii 装备了一个基于 web 的代码生成工具,叫做 gii。它替代之前的 yiic shell 生成工具(它运行在命令行)。在这一小节中,我们将描述如何使用 gii 以及如何扩展 gii 来增加我们的开发生产力。使用gii
gii 以一个模块的方式运行,必须在一个已存在的yii应用内部使用。要使用 gii,我们首先改变应用配置如下:
return array(
......
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.giimodule',
'password'=>'pick up a password here',
// 'ipfilters'=>array(...a list of ips...),
// 'newfilemode'=>0666,
// 'newdirmode'=>0777,
),
),
);
在上面,我们声明了一个模块名为 gii,它的类是giimodule。我们也为这个模块指定了一个密码,当访问 gii 时需要输入。
默认的,处于安全考虑,gii 被配置为只允许在本地访问。若我们想要在另外信任的机器上访问,可以在如上代码中配置 giimodule::ipfilters 属性。
因为gii可以产生并保存新代码文件到已存在的应用中,我们需要确保 web 服务器进程有权限这样做。在上面的 giimodule::newfilemode 和 giimodule::newdirmode 属性控制这些新文件和目录应当如何被产生。
注意:gii 主要是一个开发工具。因此,它应只被安装于一个开发机器上。因为它可以产生新php脚本文件到应用中,我们应当注意采取安全措施(例如 password,ip filters)。
现在我们可以通过 url http://hostname/path/to/index.php?r=gii 访问 gii ,这里我们假设 http://hostname/path/to/index.php 是访问已存在yii应用的 url。
若已存在的yii应用使用 path 格式的 url ,我们可以通过 url http://hostnamepath/to/index.php/gii 访问 gii。我们也需要增加如下 url 规则到已存在url规则的前面:
'components'=>array(
......
'urlmanager'=>array(
'urlformat'=>'path',
'rules'=>array(
'gii'=>'gii',
'gii/'=>'gii/',
'gii//'=>'gii//',
...existing rules...
),
),
)
gii 有一个新的默认代码生成器。每个代码生成器负责生成一个特定类型的代码。例如, controller 生成器生成一个控制器类以及一些动作视图脚本;model 生成器为指定的数据表生成一个 activerecord 类。
二、目录存在和权限。
我是根据这个步骤去完成的。我的yii还是不能成功。后来才发现。
yii的工作目录有看有没有建好;工作目录是否有写的权限;不止一个目录要检查,要看看还有其他相关的目录是否有设置。在做完以上3个步骤后,我的gii就成功运行。希望这个能给大家一个提示。