搞定CodeIgniter框架看完这篇就够了!

CI框架简介

什么是CI框架?

答:CI框架是一个小巧、轻量级的框架,全称CodeIgniter。这个框架是外国人开发。

目前这个框架存在两个主流的大版本(3.x 和 2.x)。企业使用相对来说较多的是2.x版本。

网站:

搞定CodeIgniter框架看完这篇就够了!

使用(下载)

搞定CodeIgniter框架看完这篇就够了!

在虚拟主机解压使用

目录结构

搞定CodeIgniter框架看完这篇就够了!

system目录

搞定CodeIgniter框架看完这篇就够了!

application目录

搞定CodeIgniter框架看完这篇就够了!

二、框架使用

①-控制器使用

通过URL访问得到视图和控制器文件

搞定CodeIgniter框架看完这篇就够了!

完整访问

搞定CodeIgniter框架看完这篇就够了!

学习控制器(具体)

控制器文件写在哪里

文件名称

控制器内容

控制器方法如何书写

视图如何载入

数据如何赋值

视图如何显示数据

数据库的数据如何获取

总结:文件名称需要小写、文件后缀使用.php

控制器内容

搞定CodeIgniter框架看完这篇就够了!

控制器方法(注意:CI框架里面方法的名称不能使用下划线开头)

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

凡事都有例外:有一个方法可以使用_remap

代码

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

实际使用的含义可以做一个访问的限制控制

搞定CodeIgniter框架看完这篇就够了!

_remap里面实现控制

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

如何在CI里面实现前后台模块

搞定CodeIgniter框架看完这篇就够了!

目录结构

搞定CodeIgniter框架看完这篇就够了!

②-视图使用

视图文件写在哪里

搞定CodeIgniter框架看完这篇就够了!

文件如何命名

使用小写

后缀使用.php

文件内容如何书写

里面直接可以书写html代码和php原生代码

搞定CodeIgniter框架看完这篇就够了!

注意:CI框架本身不提供标签语法 {{ $title }} ===

在控制器里面进行载入

代码

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

注意:

CI框架可以载入多个视图文件

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

CI框架视图文件也可以分控制器保存(好处:便于管理)

搞定CodeIgniter框架看完这篇就够了!

控制器调用

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

③-变量的赋值

变量赋值的第一种方式

代码

搞定CodeIgniter框架看完这篇就够了!

视图

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

第二种赋值方法(注意:一般习惯使用第二种方式赋值)

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

数组赋值

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

④-从数据库获取数据

数据库配置

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

数据库连接和获取数据(第一种方式)

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

第二种方式

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

赋值给视图

视图使用

显示

⑤-模型书写

课前复习

主要是学习控制器和视图以及数据库连接使用。

如何通过URL地址定位控制器下的方法

控制器里面方法命名(CI框架,不允许使用_命名,有一个例外_remap方法:前置方法(访问的控制))

注意CI里面视图是可以载入多个视图(可以非常方便的进行模板切分:可以在多个页面进行共用,以后维护起来也很方便)

CI里面的视图分控制器管理

数据库连接(1. 数据库的配置信息 2. 连接数据 $this->load->database(); 等价实例化一个Db类,把它赋值给$this->db属性; $this->db->get('user', $number, $offset) $this->db->query('完整的sql') 3. 返回的结果是一个对象->result_array() 二维的关联数组 row_array()把取出的结果对象换成一个一维的数组)

数据进行赋值(1. $this->load->vars('视图名称', $title) 2. $this->load->view('视图名称', array('title'=>$title)))

视图显示数据(1. 原生的写法显示数据 问题 <% $title %> 在php4的语法里面有使用)

二、CI模型的使用

在CI框架里面的,模型使用的时候,有如下规则:

问题:在一个MVC的框架里面的M是必须的吗?

单入口是必须的吗?(便于统一管理)

MVC和单入口有关系吗?没有关系(合理搭配)

CI里面的模型的使用

模型文件写在哪里?

搞定CodeIgniter框架看完这篇就够了!

模型文件如何命名

搞定CodeIgniter框架看完这篇就够了!

注意:文件名必须小写(1. 小写 2. 下划线命名方式)

模型内容如何书写

搞定CodeIgniter框架看完这篇就够了!

模型内容里面的方法如何书写

搞定CodeIgniter框架看完这篇就够了!

在控制器里面如何调用实例化模型和方法的调用

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

三、案例-会员模块

使用CI框架完成一个完整的CURD操作(增删改查)对一张表的操作。

①-表设计

搞定CodeIgniter框架看完这篇就够了!

②-代码

完成该功能需要几个文件(5个文件 controller model 三个静态页)

会员添加

在user.php控制器文件增加一个add方法

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

2. 定义一个add.php模板文件

搞定CodeIgniter框架看完这篇就够了!

注意:site_url函数的使用,需要在配置文件中定义自动加载

搞定CodeIgniter框架看完这篇就够了!

3. 定义一个user_model.php模型文件

搞定CodeIgniter框架看完这篇就够了!

会员展示

在user.php增加一个lst方法

搞定CodeIgniter框架看完这篇就够了!

定义一个lst.php模板文件

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

在user_model.php文件定义一个get_user方法

搞定CodeIgniter框架看完这篇就够了!

会员编辑

在user.php文件定义一个edt方法

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

定义一个edt.php模板文件

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

在user_model.php文件定义find_one和update_user方法

搞定CodeIgniter框架看完这篇就够了!

会员删除

在user.php增加一个del方法

搞定CodeIgniter框架看完这篇就够了!

封装跳转方法

书写位置

搞定CodeIgniter框架看完这篇就够了!

内容

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

自动加载

搞定CodeIgniter框架看完这篇就够了!

调用

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

类库使用

①-自动验证类

在CI框架里面也提供类似TP的自动验证的功能,可以非常方便的帮我们进行数据的检验。

搞定CodeIgniter框架看完这篇就够了!

使用

搞定CodeIgniter框架看完这篇就够了!

设置一下语言包

搞定CodeIgniter框架看完这篇就够了!

设置一下配置文件

搞定CodeIgniter框架看完这篇就够了!

②-分页插件

在显示数据的适合,可以使用CI框架自带的分页处理,也可以使用分页的插件来完成(pagination)。

地址:

http://www.zhangxinxu.com/wordpress/2010/01/jquery-pagination-ajax%E5%88%86%E9%

A1%B5%E6%8F%92%E4%BB%B6%E4%B8%AD%E6%96%87%E8%AF%A6%E8%A7%A3/

具体使用

先引入相关资源

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

页面定义id和class

搞定CodeIgniter框架看完这篇就够了!

在js代码赋值插件相关的函数

搞定CodeIgniter框架看完这篇就够了!

回调函数

搞定CodeIgniter框架看完这篇就够了!

后台user.php控制器里面定义一个alst方法

搞定CodeIgniter框架看完这篇就够了!

效果

搞定CodeIgniter框架看完这篇就够了!

四、源码分析

整体把这个源码阅读一些

了解$this->load 装载器

了解$this->db

重点掌握

搞定CodeIgniter框架看完这篇就够了!

Common.php文件(包含了非常重要的函数)

load_class() CI里面没有类的自动加载机制__autoload() spl_autoload_register(),全部都是使用该函数进行类文件的查找和加载

搞定CodeIgniter框架看完这篇就够了!

分析函数

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

b. is_loaded() 函数主要是用来记录我们加载过哪些类文件(注册模式)

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

CI里面的装载器

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

CI 里面的$this被称为超级对象($this可以在任何地方被调用| 模型|视图|控制器)

搞定CodeIgniter框架看完这篇就够了!

模型里面$this->db 的$this和控制器里面$this是完全一样的

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

搞定CodeIgniter框架看完这篇就够了!

扩展

常见单例模式(三私一共)、工厂模式、注册模式CI、依赖注入(控制反转)laravel

问题:MVC是不是一种设计模式?设计的思想(多种设计模式的一个综合)

《四人帮设计模式》《大话设计模式》

编程主要的目的是为了 使用机器帮组人们解决问题

答:解决问题的时候有多种思想

面向过程,一一个个函数的合理的调用(函数)

面向对象,一个一个的实体(对象),实体的方法

面向切面,主要是钩子函数的使用(C语言编程)

明白:无论哪一种思想都没有绝对的好和坏。都是为了解决实际的现实问题。

闭包特点:函数的返回值是一个函数,闭包会使用它产生的时候的环境信息