你现在的位置:首页 > PHP网站建设知识库 > Yii > 正文

Yii 框架学习笔记

下载并安装Yii框架,yii的官方网站是:http://www.yiiframework.com,下载地址是 http://www.yiiframework.com/download/ 下载最新版本,放在网站根目录

要求PHP5.1版本以上哦

然后

设置环境变量:右击“我的电脑”,选择“属性”,点击“高级”选项卡,点击“环境变量”按钮,出现对话框。在“系统变量”里找到 Path,双击“Path”,在弹出的对话框“变量值”中添加

//将php.exe添加到系统目录,这样方便调用php命令
;C:/wamp/bin/php/php5.3.0;

依次点击“确定”保存。

4.“开始”->“运行”->输入cmd,打开命令行界面。

5.进入c:/wamp/www/yii/framework,运行

cd yii目录

yiic webapp /web目录/mywebsite

将产生一个新项目 mywebsite

打开目录看看,这样就生成了一个最基本的YII框架目录。现在可以通过浏览器查看到网站的内容

YII中url地址的请求说明:
譬如地址:http://www.example.com/blog/index.php?r=site/contact
说明它使用的是SiteController.php控制文件!方法名为auctionContact!
所有的controller文件都放在 WEBROOT/protected/controllers/ 中请遵守其命名和存放规则!

这就是YII中的目录结构了!

然后我们可以随便新建一个数据库,然后试用下YII强大的数据库功能!
数据库设置文件是在配置文件:/protected/config/main.php
根据你的数据库类型修改数据库的相关配置!
然后在文件中找到下面这段并合理修改:

//add db manage set  
    'import'=>array(  
        'application.models.*',  
        'application.components.*',  
    ),  
    'modules'=>array(  
        'gii'=>array(  
            'class'=>'system.gii.GiiModule',  
        'password'=>'****',//访问密码  
         ),  
    ),  

然后我们访问:http://webroot/test/index.php?r=gii
点击 Model Generator 即可输入表的名称,就会生成对应的控制器
譬如我这里输入了newlist来生成一个数据库模型类!
然后我再点击Crud Generator 来生成表的增删改查的工作!
输入钢材生成的数据库模型类就可以直接生成了,我这里输入了Newlist!
http://www.lee.com/test/index.php?r=newlist

就完成了!

这就是YII中的强大的增删改查了!

 使用YII中的用户验证控件!
 YII中已经默认的使用了一个简单的用户验证系统,您只需要执行小小的操作就可以进行用户的验证!
 用户验证文件放置在 protected/components/UserIdentity.php 中,修改后类似如下:

       //保存用户名  
       public $username;  
//保存用户ID  
private $_uid;  
  
public function authenticate()  
{  
    $username=strtolower($this->username);//将用户名转换为小写  
    $user=User::model()->find('LOWER(username)=?',array($username));//获取该用户的信息  
  
    if($user===null)//用户不存在  
        $this->errorCode=self::ERROR_USERNAME_INVALID;  
    else if($user->validatePassword($this->password))//检测用户密码  
        $this->errorCode=self::ERROR_PASSWORD_INVALID;  
    else//完全正确  
        $this->_uid=$user->Id;  
        $this->username=$user->username;  
        $this->errorCode=self::ERROR_NONE;  
    return !$this->errorCode;  
}  
  
/** 
 * 获取用户的ID 
 * @author guanle 
 * @version v0.1 (2011-5-26) 
 */  
public function getId()  
{  
    return $this->_uid;  
}  
 
下面我们需要完善一下用户密码的校验类
在model/user中,我们需要加入下面的方法!
 

/** 
     * 用于检测密码是否正确 
     * @author guanle 
     * @version v0.1 (2011-5-26) 
     */  
    public function validatePassword($password)  
    {  
        return $this->hashPassword($password)===$this->password;  
    }  
      
    /** 
     * 密码加密方法 
     * @author guanle 
     * @version v0.1 (2011-5-26)  
     */  
    public function hashPassword($password)  
    {  
        return $password;  
    }  
 
这样我们就可以通过数据库来验证用户的登录是否正确了。
关于Yii::app()->user->login(****); 一些小说明:
yii:app 是一个全局都可以调用的方法,他在index.php中被实现:
user方法其实是CWebUser方法,该定义可以在CWebApplication中找到,他是YII的基础方法!
如果需要更详细的说明,请参见base/CComponent.php中的定义!

这样就完成了一个简单的用户登录了!

模块的使用:

使用 Module Generator 建立一个新的模块

<?php  
  
return array(    'modules'=>array(        'ModuleName',    ),    ......);   

可能会需要加上如上的说明在系统配置中,就可以通过如下的方法访问了

http://www.website.com/lee/index.php?r=ModuleName/Default/Index 

form 表单建立的使用方法:
首先建立一个 LoginForm.php 在Model目录
然后修改调用页面例如:

$model=new LoginForm;  
          
        if(isset($_POST['LoginForm']))  
        {  
            $model->attributes=$_POST['LoginForm'];  
            if($model->validate())  
            {  
               // form inputs are valid, do something here  
               return;  
            }  
        }  
          
      
        $this->layout = 'main';  
        $this->render('Index',array('model'=>$model));  
 
最后在页面上面写下From就可以了!
多语言国际化
1.系统配置文件中加入该句:  'language'=>'zh_cn',
2.在相应的message目录建立对应的语言文件
3.注意如果是Module 下面的语言包,要使用下面的方式读取
    Yii::t('ManageModule.user', 'Email'); #module表示是在模块中。。。