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

CI框架是基于MVC的,分别是
1.Models:模型,用来摆放实体类,工具类,数据库访问类等,属于后台的数据支持与类型支持。
2.Controls:控制器,当做一个交警的作用,就是控制内部数据和外部界面的协调,所以这个是在M和V中间做调节作用了,竟然是调节作用,那么就需要掌握一些东西:怎么和M交流,怎么和V交流,还有用户是怎么和自己交流呢。这些都是比较核心,比较重要的东西,下面会总结。
3.Views:视图,这个就是界面了,反馈给用户操作的界面了,主要用html来写,这个大家懂了。
 
下面分几步来介绍和总结CI的使用:1.准备工作。2.文件介绍。3.M,C,V之间的通讯方式。
 
(一)下载,地址http://codeigniter.org.cn/下载完成就是应用程序的框架了,然后放在服务器www文件底下,看一下文件其他的就删除掉,没什么用处。
(二)
然后有两个文件夹,一个是Application,这个是应用程序文件放的地方,进去里面看一下:
这里可以看到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方法,看方法:
我看这样就明了了,第一个参数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类:
<?php
class 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了,研究下就好。十分简单

PHP开发框架--CodeIgniter(CI)使用总结的更多相关文章

  1. CodeIgniter(CI)框架中的验证码

    在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI ...

  2. PHP CodeIgniter(CI)去掉 index.php

    去掉CodeIgniter(CI)默认url中的index.php的步骤: 1.打开apache的配置文件,conf/httpd.conf : LoadModule rewrite_module mo ...

  3. PHP开发框架CodeIgniter

    CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包. 通过下面四步来安装 CodeIgniter: 解压缩安装包: 将 CodeIgniter 文件夹及里面的文件上传到 ...

  4. Codeigniter CI 框架的一些优化思考

    前段时间使用CI做了两个小项目,对CI的流程和设计理念也有了一些新的认识.CI架构的一些基本优化这里就不做介绍了,如搬离system 文件夹等. 最近有一个稍微大一点的系统,也准备拿CI来做.设计时遇 ...

  5. 纯PHP Codeigniter(CI) ThinkPHP效率测试

    最近一直想做一个技术类的新闻站点,想做的执行效率高些,想用PHP做,一直纠结于用纯PHP做还是用CI或者THINKPHP.用纯PHP效率高,缺点 n多,比如安全方面.构架方面等等等等:用CI.thin ...

  6. CodeIgniter(CI 3.0)分页类实践记录

    最近在学习B/S,选择了PHP CI框架作为切入点. 在尝试制作个人CMS的时候遇到了需要分页的情况,网上好像搜不到3.0版本以上的例子,下面附上本地实验的代码,供参考. 数据库情况如下: 首先看Co ...

  7. CodeIgniter (CI)框架中的数据库查询汇总

    引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...

  8. php codeigniter (CI) oracle 数据库配置-宋正河整理

    database.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record ...

  9. **汇总CodeIgniter(CI)的数据库操作函数

    //查询: $query = $this->db_query("SELECT * FROM table"); ================================ ...

随机推荐

  1. 怎样查看python的api

    python -m pydoc -p 4567 python -m pydoc表示打开pydoc模块,pydoc是查看python文档的首选工具: -p 4567表示在4567端口上启动server; ...

  2. java多线程向数据库中加载数据

    读取本地文件,每行为一条记录,文件大小550M,200万条数据.先将文件读取的内存中,再开启6个线程连接postgresql不同coordinator端口导入数据.代码如下: import java. ...

  3. VMDK镜像迁移到KVM(二)

    KVM has the ability to use VMware's .vmdk disk files directly, as long as the disk is wholly contain ...

  4. CSS2伪类选择器要点

    有四个选择器,分别是 hover:鼠标悬停 link:链接不能使用时 visited:链接被点击后 active:链接被点击时,如果鼠标不放,就会一直触发active属性 link在w3c中记录为链接 ...

  5. Linux的服务器初始优化脚本。

    #!/bin/bash #优化服务器启动的脚本.禁用无关账号.无关服务 #Lock User Account passwd -l xfs passwd -l news passwd -l nscd p ...

  6. ajax 上传

    使用FormData,进行Ajax请求并上传文件:具体代码如下: html代码: <!DOCTYPE html><html lang="en"><he ...

  7. crontab 安装 和一些 简单的命令

    crontab命 令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供 之后读取和执行.通常,crontab ...

  8. POJ 3660 Cow Contest

    题目链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  9. css link和@import区别

    1.link语法结构 <link href="CSSurl路径" rel="stylesheet" type="text/css" / ...

  10. lable自动适配大小

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...