在开发的时候框架是十分重要的,目前有很多框架,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. 如何在UIAlertView中显示进度条

    今天这个问题是,在一个iPhone程序中,我要在后台做大量的数据处理,希望在界面上显示一个进度条(Progress Bar)使得用户了解处理进度.这个进度条应该是在一个模态的窗口中,使界 今天这个问题 ...

  2. Oracle 12C RAC的optimizer_adaptive_features造成数据插入超时

    问题分析 使用10046事件追踪方式,直接生成上传时的数据库事件日志进行分析,发现主要区别在于以下两条sql语句在每次长时间上传时都有出现,并且执行用户不是上传用户,而是数据库SYS用户. ***** ...

  3. Conference Search不错的学术会议日程提示网站

    一个不错的学术会议日程提示网站 http://www.confsearch.org,还可以通过内嵌框架(embedded iframe)集成到自己的网页上. http://www.confsearch ...

  4. CentOS6下搭建OpenVPN服务器

    • OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网 ...

  5. gulp 制作雪碧图

    雪碧图:sprite 是把多张图片拼到一张图中,提升性能的一种做法.把合并的图片一次性加载到内存中,需要时只渲染一部分. 我们选择gulp.spritesmith插件. 使用gulp时首先要在指定的任 ...

  6. DuiLib——第一篇UIManager

    DUiLib 源码分析 --以UiLib 1.01版为分析目标 -------------------------------------------------------------------- ...

  7. windows环境下安装python模块大招

    python发展到今天,感觉版本有点控制不住了,同时出现多个版本python2.5,python2.7 python 3 ,同时跨越windows,mac,*inux等多个平台,还有32位,64位等不 ...

  8. C++ Language

    C++ Language Reference https://msdn.microsoft.com/en-us/library/3bstk3k5(v=vs.120).aspx

  9. 数据库事务隔离级ORACLE数据库事务隔离级别介绍

    本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...

  10. 代码里面执行bat

    public static void executeBat(String path) {        try {            File file = new File(path);     ...