PHP开发框架--CodeIgniter(CI)使用总结

来源:互联网 发布:贾静雯颜值 知乎 编辑:程序博客网 时间:2024/04/28 01:38

转自:http://blog.sina.com.cn/s/blog_7b60d05f0101tl9h.html


在开发的时候框架是十分重要的,目前有很多框架,WPF中比较出名的MVVM等,这些都是用来组织开发文件的,就是把一个应用分开来写。下面总结一下CI框架的用法。
CI框架是基于MVC的,分别是

  • Models:模型,用来摆放实体类,工具类,数据库访问类等,属于后台的数据支持与类型支持。

  • Controls:控制器,当做一个交警的作用,就是控制内部数据和外部界面的协调,所以这个是在M和V中间做调节作用了,竟然是调节作用,那么就需要掌握一些东西:怎么和M交流,怎么和V交流,还有用户是怎么和自己交流呢。这些都是比较核心,比较重要的东西,下面会总结。

  • Views:视图,这个就是界面了,反馈给用户操作的界面了,主要用html来写,这个大家懂了。


下面分几步来介绍和总结CI的使用:
1、准备工作。
2、文件介绍。
3、M、C、V之间的通讯方式。

(一)下载,地址http://codeigniter.org.cn/下载完成就是应用程序的框架了,然后放在服务器www文件底下,看一下文件PHP开发框架,如下图:
这里写图片描述
(二)然后有两个文件夹,一个是Application,这个是应用程序文件放的地方,进去里面看一下:
这里写图片描述
PHP开发框架–CodeIgniter(CI)使用总结这里可以看到MVC了,controllers,models,views分别放各自的文件,然后有一个config文件夹,用来装配置文件的。
返回去system文件夹里面就是存在开发这个框架的团队写的一些使用类,我们不用去修改,可以直接用。十分简单,,十分明了。
(三)这里就是重点了,在学会用一个框架的时候,框架之间的元素的通信方式必须要清楚,这样就能开搞。先说一下CI框架的思想,用户是通过访问一个controller中的方法来访问一个页面的,所以这个controller就起着十分重要的角色了,上面说过它是交通警察,负责监视内部数据变化和反馈界面,接受界面信息反馈内部数据等作用。


下面说几个主要的通讯:

1.用户与controller的通讯,竟然用户是通过访问C中的方法来访问页面,那么用户与方法的通讯就通过参数来了,用户能在URL中直接写参数,按顺序,例如http://localhost/CI/index.php/hello/sayhello/Jarvin/Afternoon
这里就访问hello这个controller中的sayhello方法,看方法:
这里写图片描述
PHP开发框架–CodeIgniter(CI)使用总结
我看这样就明了了,第一个参数Jarvin第二个参数Afternoon.

2.controller与View的通讯,虽然说能混编html来进行界面表述,但是竟然是用mvc那么就要分开,分到View里面,在Views文件夹里面写好html文件,这些文件能是完整的全页面html也能是部分html,例如说头部,身部,尾部等。写好以后就通过Controller来引用Views中的view来展示东西了。,竟然能在Controller中引用界面文件,那么怎么调用,这个是重要的:
$this->load->view(“text_view.php”);在函数里面加上这句就是引用一个views中的文件了。如果想调用多个,例如要一次把头,身,尾调用进去,那么直接在下面添加多两条一样的,改个名称就OK,还要一个重要的是Controller怎么跟view通讯呢???答案是利用数组,然后在第一个引用后面传入数组.下面看例子:

function show()    {        $name="Jarvin";        $count=1;        $data= array('Name'=>$name,'num'=>$count);          $this->load->view("text_view.php",$data);//调用一个视图    }

这样传过去,然后那边怎么接呢,如下图:
这里写图片描述

3.Controller与model的通讯.
用来提交给view的数据很多时候不是写死的,那么动态数据就要用到数据库,那么久要用到Model了。,下面总结一下制作一个Model类进行对数据库进行增删改除。
其实啊,Controller调用Model类中的函数,然后传入参数进行通信,形式与C和V通讯差不多。

首先是新建一个模型类,新建一个模型类的模型是:

class ClassName extends CI_Model//注意要继承CI_Model类{    function __construct()    {        parent::__construct();//构造函数里面要调用父类的构造方法        $this->load->database();//加载数据库,数据库名称在Config文件里面配置。,还有其他信息,例如密码等    }//下面写函数。}

下面给出测试model类:

<?phpclass Test_m extends CI_Model{    function __construct()    {        parent::__construct();        $this->load->database();    }    function user_insert($arr)    {        $this->db->insert("person",$arr);    }    function user_update($name,$arr)    {        $this->db->where("Name",$name);        $this->db->update("person",$arr);    }    function user_delete($name)    {        $this->db->where("Name",$name);        $this->db->delete("person");    }    function user_select($name)    {        $this->db->where("Name",$name);        $this->db->select("*");        $query=  $this->db->get("person");        return $query->result();    }}?>

然后在controllers里面新建一个controller,来使用这个模型类的功能:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');class User extends CI_Controller {//继承是必须的!!    function insert()    {        $this->load->model('Test_m');        $arr=array('Name'=>'fff','Age'=>21);        $this->Test_m->user_insert($arr);    }    function update()    {        $this->load->model('Test_m');        $arr=array('Name'=>'gg','Age'=>12);        $this->Test_m->user_update('J',$arr);    }    function delete()    {        $this->load->model('Test_m');        $this->Test_m->user_delete("Ken");    }    function  select()    {        $this->load->model('Test_m');        var_dump($this->Test_m->user_select("ggg"));    } }?>

OK了,研究下就好。十分简单

0 0
原创粉丝点击