一步一步学Yii开发(一)

1. 开发环境搭建

第一步当然是搭建环境了,关于这一步,我专门有一篇文章提到,请参考

yii framework开发环境搭建

 

2. 创建一个工程

 

cd到yii的目录,运行下面的命令

 

yiic.bat webapp ../testpro

这样就会在documentroot下面创建一个新的工程,工程名是testpro,其中包含如下图所示的文件:

现在就去浏览器访问刚才创建的工程,应该可以看到下面这个页面:

 

 

 

3. 创建一个controller

因为Yii采用的是MVC的结构,如果web框架采用这样的结构,那么第一个访问到的MVC的C,也就是controller,因此我们首先创建controller。去到controllers这个目录,创建一个controller,假设我们要创建的controller的名字是test,那么文件的名字就应该是

 

TestController.php

 

注意大小写。

 

Yii规定我们定义的controller需要继承自Controller这个类,那么类的声明就应该是这样了

 

 

<?php

class TestController extends Controller
{

}

?>

有了我们自己的controller我们就可以去地址栏里面输入下面的地址来访问的这个controller了,

 

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

 

结果看到什么?

 

Error 404

The system is unable to find the requested action "index".

 

 

如果看到这个错误,那就对了,说明我们的controller已经可以访问了,关于这个错误,稍后会解释。

 

4. 创建controller的action

我们创建一个叫index的action,其实就定义一个action的函数,这个函数框架会调用。Yii规定anction对应的函数的定义必须是action+[action的名字],并且名字首个字母要大些。因此我们要定义的函数就应该是这样:

 

public actionIndex()

现在我们这个TestController.php变成了:

 

 

<?php

class TestController extends Controller
{
	public function actionIndex()
	{

	}
}

?>

 

现在再使用下面的URL访问我们的controller,

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

 

看到什么?白白的,什么都没有?对了,这说明action已经工作了。

发现没有,其实上面的url中,我们并没有指定action的名字,而它实际上访问了我们的index这个action,这是因为Yii规定如果controller后面如果没有指定action的名字,那么就访问的index这个action。也许你想创建另外一个action,比如run,那么该怎么写呢?这个交给你自己去写了。写完之后,访问这个action,使用的url应该是这个样子:

http://localhost/testpro/index.php?r=test/run

 

解释一下,为什么是白白了,那是我们还没有view,接下就是创建一个view。

 

5. 创建view

去到views这个目录,在下面创建一个新的文件夹,命名为test,使用小写;然后进入test这个文件夹中,创建一个新的文件,名字随便,比如就叫index.php。

这里要注意一点,上面创建文件夹的时候,名字一定要和controller的名字,并且要小写。

这样的我们的视图就有了。

 

6. 关联controller和view

虽然我们的视图和controller都有了,但是我们并没有指定使用哪个视图啊?有人说那不是我们在创建文件夹的时候使用和controller一样的名字吗,使用那个下面的view不就可以了吗?不可以,因为刚才我们说了,视图的名字可以随便取,并且那里面可以很多视图,Yii无法知道使用哪一个。

关联视图是在action中,在我们的这个例子中,就去actionIndex这个函数中,添加如下的代码:

 

 $this->render( 'index' );

 

这就表示调用这个action 的时候,去渲染index.php这个视图。这个controller就变成了

 

 

<?php

class TestController extends Controller
{
	public function actionIndex()
	{
            $this->render( 'index' );
	}
}

?>

 

现在再使用上面的url访问,看到什么了?看到有页头和页脚了,对吧。

现在你也许奇怪,明明我们的视图里面什么都没有,为什么这个页面却有东西呢?那是因为使用Yii的命令创建工程的时候,Yii自动生成了layout,layout中已经定义好了,页头和页脚。你更改页头和页脚,甚至去掉他们,可以查看 views/layouts/main.php。

 

7. 创建view的内容

接下来我们在我们的视图中真正的添加一些东西,

 

 

<div>
<p>Welcome to Yii Framework World.</p>
</div>

 

再去访问页面,看看什么效果。

 

到目前为止,我们就创建了一个完整的页面了。基于我们介绍这些东西,你可以创建一个不跟数据库打交道的web应用了,比如多创建几个controller,每个controller多创建几个action,然后这些个页面还可以连接起来。

 

MVC中,我们已经玩了V和C,还没有动到M的东西,接下来就是要动它了。M是model的缩写,model就是和数据库交互,因此接下来就用到数据库。关于这部分我们将在

 

一步一步学Yii开发(二)

 

继续介绍。

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *