【PHP】CI框架学习:CodeIgniter框架的MVC流程以及Controller介绍

简单介绍CI中的MVC模式

M = models ,V = views , C = controllers 。CI是基于MVC模式构建的,现在就让我们快速的看一看CI的MVC流程实现。

首先来介绍一下CI的运行过程。
所有的请求都发到index.php这个入口文件中,然后根据URL的组成index可以判断是在请求哪个控制器的哪个方法, 然后就将这个请求发送到对应的controller的function中去执行请求;到了C这边,根据请求去调取model,获取相应数据,然后通过view展现出最后的结果。我自己画了个图:

虽然不好看但就差不多咯。

URL的组成是分段的,类似 yoursite/index.php/controller/function/param 这样的,前面的yoursite/index.php是不需要我们管的,后面的第一段是控制器,第二段是方法,以后的段都是要传递的参数,有几个就写几个,没有的话就只需要有2段。在CI中URL的段是很重要的知识点,所有的请求都是基于段的,获取当前URL某一段的方法是

<h2>$this->uri->segment(<var>n</var>)</h2>

参数n就是你想要获取的段数,比如你的URL类似localhost/index.php/product/showinfo/1 的时候,当调用上面的函数是,n=1你会获得product,n=3你会获得1。

Controller 这边,定义一个controller首先要继承CI_Controller ,在文件命名的时候要小写,但是雷明首字母要大写,多个单词用下划线分隔,不要用驼峰法命名。继承CI_Controller 以后,先调用其构造函数


function __construct()
 {
 parent::__construct();
 }

然后就可以定义自己的方法了。整个的代码类似下面的样子:


<?php
 class Student  extends CI_Controller {

function __construct()
 {
 parent::__construct();
 }

function show_info()
 {
 echo '我是一个大学生';
 }

function get_name($id)
 {
 echo $id;
 echo '我是name是刘凯宁';
 }
 }
 ?>

我们定义了一个controller,调用了构造函数,然后加了两个方法,一个带参数一个不带参数。当我们请求 wiesite/index.php/student/show_info这样的URL时候,就会转到student这个控制器的show_info这个方法中去做相应处理,而请求website/index.php/student/get_name/4这样的URL时,就会转到student的get_name方法中,并且带了一个参数4过来。这就是控制器的介绍了:通过请求URL然后转到不同的控制器的不同方法中做相应的处理。

刘凯宁@C2P
20140911

Share

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>