1. 开发环境搭建
第一步当然是搭建环境了,关于这一步,我专门有一篇文章提到,请参考
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
如果看到这个错误,那就对了,说明我们的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就是和数据库交互,因此接下来就用到数据库。关于这部分我们将在
继续介绍。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.