CI是什么?

  CodeIgnitert是一个轻量级但功能强大的PHP框架

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  基于MVC设计模式,提供了一套丰富的类库

  简单易学,高效实用

官方网站

  www.codeigniter.com

中文网站

  http://codeigniter.org.cn

特点

  你想要一个小巧的框架

  你需要出色的性能

  你需要广泛兼容标准主机上的各种PHP版本和配置

    CI  2.1.4 需要  php5.1.6

  你想要一个几乎只需0配置的框架

  你想要一个不需使用命令行的框架

  你想要一个不许坚守限制性编码规则的框架

  你不希望被迫学习一门模板语言(虽然可以选你你喜欢的模板解析器)

  你不喜欢复杂,热爱简单

  你需要清晰完整的文档

 

目录结构说明

   license.txt  许可协议

  user_guide    用户手册

  system     框架核心文件

  application  应用目录

  index.php   入口文件

-----------------------------------------------

MVC

  1.入口文件

    唯一 一个让浏览器直接请求的脚本

  2.控制器

    协调模型和视图

  3.模型

    提供数据,保存数据

  4.视图

    只负责显示

    表单。。。

  5.动作action

    是控制器中方法,用于被浏览器直接请求

 

CI中的MVC

  访问url使用的是pathinfo(入口文件.php/控制器/动作)

  application目录中:

    controllers  控制器

    models    模型

    views    视图

  默认控制器是welcome,默认动作是welcome

 

控制器

  1.不需要加后缀,直接是类名+.php

  2.文件名全部小写,例如user.php

  3.所有的控制器,直接或间接继承CI_Controller类

  4.控制器中,对动作(方法)要求,否则将不能被浏览器请求

    不能以下划线开头,应该是public的

  5.与类名相同的方法,会被当做构造方法,相当于__construct(){}

 

视图

  1.在控制器中如何加载视图

    //直接写视图名字,不屑扩展名,如果有子目录,则写上目录名

    $this->load->view(视图);(可以多次调用)

  2.视图中直接使用原生php代码,不适用模板引擎

  3.推荐使用

    <?php  foreach($list as $item):?>

    <?=$item['name']?>

    <php endforeach;?>

 

超级对象

  当前的控制器对象

  提供了很多属性:

    this->load

      装载器类的实例system/core/Loader.php

      装载器提供方法:

        view()    装载视图

        vars()     分配变量到视图

        database()     装载数据库操作对象

        model()    装载模型对象

        helper()     辅助函数

    this->uri

      是CI_URI类的实例system/core/URI.php

      CI_URI类提供的方法:

        segment(n)  用于获取url中的第n个参数

        入口文件.php/控制器/动作/参数1/参数2    

echo $this->segment(3);//值1
echo $this->segment(4);//值2

//index.php/控制器/index/6
public function index($p){
     echo $p;//输出6      
}

     this->input  //输入类

      是CI_URI类的实例system/core/Input.php

      CI_URI类提供的方法:

        $this->input->post('username');  //$_post['username']

        $this->input->server('DOCUMENT_ROOT');  //$_SERVER['DOCUMENT_ROOT']

    在视图中,直接用$this来访问超级对象中的一些属性

 

数据库访问

  修改配置文件application/config//database.php

//将数据库访问对象,装载到超级对象的属性中  $this->db
$this->load->database();

$res = $this->db->query($sql);//返回对象
$res->resulr();//返回数组,数组中是一个一个的对象
$res->result_array();//返回二维数组,里面是关联数组
$res->row();//返回第一条数据,直接是一个对象

   参数绑定

$sql = "select * from blog_user where name=?";
$this->db->query($sql,$name);//如果有多个问号时,需要传入一个索引数组

//表前缀
//目录 application/config/database.php
$db['default']['dbprefix'] = 'blog_';
$db['default']['swap_pre'] = 'blog_';
//配置为一样,直接硬编码表前缀就行了,如果以后项目数据库表前缀发生变化,只需要修改$db['default']['dbprefix'] = 'new_';代码中的blog_会自动替换为new_

  db的自动加载

//目录 application/config/autoload.php
$autoload['libraries'] = array('database');
//不需要:$this->load->database();

 

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄