CI框架(一)框架结构



[php]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 1、codeigniter框架的授课内容安排  
  2. 2、codeigniter框架的简介  
  3.   
  4.     |-----关于框架的概念  
  5.     |-----使用CI框架的好处  
  6.     |-----为什么选择CI框架  
  7.       
  8.   
  9. 3、codeigniter框架的具体安装步骤  
  10.   
  11.     |-----官网下载:http://www.codeigniter.com/  
  12.     |-----httpd.conf配置文件中rewrite重写机制的开启  
  13.     |-----httpd.conf配置文件虚拟主机的开启  
  14.     |-----httpd-vhosts.conf配置文件中虚拟主机的配置  
  15.     |-----hosts文件中添加DNS映射  
  16.   
  17. 4、codeigniter框架的目录结构分析  
  18.   
  19.     |-----框架目录结构分析  
  20.     |-----项目部署  
  21.   
  22. 5、codeigniter框架中URL各部分的分析及简单的工作原理:http://域名/入口文件/模块名/控制器/方法/参数列表  
  23. 6、codeigniter框架详细执行流程分析:如果没有模块文件夹的话,则为:http://域名/入口文件/控制器/方法/参数列表  
  24. 7、codeigniter框架中config.php配置文件的分析  
  25. 8、codeigniter框架中使用rewrite重写机制隐藏index.php单一入口文件  
  26.   
  27. 9、codeigniter框架中控制器  
  28.   
  29.     |-----控制器的创建位置  
  30.     |-----控制器的命名规范  
  31.     |-----控制器文件的分目录管理  
  32.     |-----方法的命名规范:1、不能以list命名 2、方法名与类名不同名  
  33.     |-----方法中如何获取GET方式提交过来的数据  
  34.     |-----方法中如何获取POST方式提交过来的数据  
  35.       
  36. 10、codeigniter框架中视图  
  37.   
  38.     |-----视图的创建位置:appcation/views/ 目录下  
  39.     |-----视图的命名规范:login.php   login.html  
  40.     |-----如何在控制器中载入视图模板文件:$this->load->view("login"); $this->load->view("login.html");  
  41.     |-----如何在控制器中给视图模板文件传递数据:$this->load->view("login.html",$data);//extract函数  
  42.     |-----视图模板文件的分目录管理:$this->load->view("admin/category/addcategory.html");  
  43.   
  44. 11、codeigniter框架中的模型  
  45.   
  46.     |-----模型的创建位置:application/models 目录下  
  47.     |-----模型的命名规范:不区分大小写,建议首字母大写  
  48.     |-----如何在控制器中载入模型(自动加载和手动加载):$this->load->model("user_model");  
  49.     |-----模型文件的分目录管理:$this->load->model("admin/user_model");  
  50.   
  51. 12、codeigniter框架中如何扩展控制器、模型  
  52.   
  53.     |-----基控制器的扩展:class Common extends CI_Controller{}  
  54.     |-----基模型的扩展:class Model extends CI_Model{}  
  55.   
  56. 13、codeigniter框架中数据库操作  
  57.   
  58.     |-----连接mysql数据库的配置:application/config/database.php  
  59.     |-----如何在模型中连接mysql数据库(自动载入和手动载入):$this->load->database();  
  60.     |-----使用普通查询操作完整数据的增删改查操作:1、$this->db->query($query);//结果集  
  61.     |-----使用快捷操作类完成数据的增删改查操作:将sql语句的拼接放在成员方法中进行  
  62.     |-----用户管理系统-管理员的查询  
  63.     |-----用户管理系统-管理员的添加  
  64.     |-----用户管理系统-管理员的修改  
  65.     |-----用户管理系统-管理员的删除  
  66.   
  67. 14、codeigniter框架中辅助函数  
  68.   
  69.     |-----辅助函数的位置:application/helpers 目录 或 system/helpers 目录  
  70.     |-----如何在控制器中载入辅助函数:$this->load->helper("url");//载入url_helper.php文件  
  71.     |-----自定义辅助函数  
  72.     |-----辅助函数的扩展  
  73.     |-----辅助函数的载入机制:首先考虑载入application/helpers 目录下的文件,再考虑载入system/helpers 目录下的文件  
  74.     |-----用户管理系统-页面的跳转:header("location:".site_url("admin/login/"));//创建一个url,并跳转  
  75.   
  76. 15、codeigniter框架中的配置文件  
  77.       
  78.     |-----配置文件的位置:application/config/ 目录下  
  79.     |-----如何在CI项目的控制器中载入配置文件(手动载入和自动载入):$this->config->load("pagination");  
  80.     |-----如何自定义配置文件:application/config/pagination.php    配置项变量名必须是 $config['配置项']  
  81.     |-----配置文件中配置项的命名规范:$config['配置项']  
  82.     |-----如何动态给配置项设置值:$this->config->set_item("配置项","配置项值");  
  83.     |-----如何将分页配置写到配置文件中  
  84.     |-----如何将配置文件合并:$this->config->load("pagination",true);//参数2:true  
  85.   
  86. 16、codeigniter框架中的通用类库  
  87.   
  88.     |-----通用类库的位置:application/libraries/ 目录 system/libraries/ 目录  
  89.     |-----如何在ci项目的控制器中载入通用类库:$this->load->library("upload");//文件上传类库的载入  
  90.     |-----通用类库的载入机制:优先考虑载入application/libraries/ 目录下类库,其次考虑载入 system/libraries 目录下类库  
  91.     |-----分页类库的载入(定制分页风格):$this->load->library("pagination");  
  92.     |-----用户管理系统-管理员列表页分页功能的完成  
  93.   
  94. 17、codeigniter框架与smarty模板引擎的无缝整合  
  95.   
  96.     |-----如何将第三方类库:smarty模板引擎整合到CI项目中来        
  97.   
  98.     |-----如何在控制器中载入smarty模板引擎:$this->load->library("tp");  
  99.   
  100. 18、codeigniter框架中完成用户登录系统  
  101.   
  102.     |-----用户登录系统-session类库的使用  
  103.     |-----用户登录系统-cookie类库的使用  
  104.     |-----用户登录系统-使用captache辅助函数完成图像验证码的创建  
  105.     |-----用户登录系统-验证码原理  
  106.     |-----用户登录系统-session登录  
  107.     |-----用户登录系统-cookie登录  
  108.     |-----用户登录系统-增加公共操作控制器(扩展系统核心控制器类文件)  
  109.     |-----用户登录系统-cookie的三种使用方式  
  110.         |-----php原生态语法结构中设置cookie的函数  
  111.         |-----ci框架的cookie辅助函数  
  112.         |-----input类库  
  113.   
  114. 19、codeigniter框架与ueditor编辑器的无缝整合  
  115.   
  116.     |-----整合步骤  
  117.   
  118. 20、codeigniter框架与fckeditor编辑器的无缝整合  
  119.   
  120.     |-----整合步骤  
  121.   
  122. 21、codeigniter框架中完成无限级分类下拉菜单  
  123.       
  124.     |-----无线递归方式完成(比较复杂一点,效率低,不推荐使用)  
  125.     |-----path方式完成(最为简便的方式,几行代码就可搞定)  
  126.   
  127. 22、codeigniter框架中使用jquery完成省市区三级联动功能  
  128.   
  129. 23、codeigniter框架中完成商品分类管理模块  
  130.   
  131.     |-----商品分类管理模块-添加商品分类  
  132.     |-----商品分类管理模块-添加商品子分类  
  133.     |-----商品分类管理模块-修改商品分类  
  134.     |-----商品分类管理模块-商品分类列表  
  135.     |-----商品分类管理模块-商品分类的删除  
  136.     |-----商品分类管理模块-商品分类排序  
  137.     |-----文件上传类库的使用  
  138.     |-----图像处理类库的使用  
  139.     |-----商品分类管理模块-添加分类banner  
  140.     |-----如何将文件上传和图像处理的有关配置放到配置文件中  
  141.     |-----商品分类管理模块-分类banner列表  
  142.     |-----商品分类管理模块-编辑分类banner  
  143.     |-----商品分类管理模块-banner的启用和禁用  
  144.     |-----商品分类管理模块-分类banner排序  
  145.   
  146. 24、codeigniter框架完成一个权限管理系统  
  147.   
  148.     |-----权限管理系统-数据表的创建  
  149.     |-----权限管理系统-业务分析  
  150.     |-----权限管理系统-操作权限管理  
  151.     |-----权限管理系统-添加操作权限  
  152.     |-----权限管理系统-修改操作权限  
  153.     |-----权限管理系统-删除操作权限  
  154.   
  155.     |-----权限管理系统-模块管理  
  156.     |-----权限管理系统-添加模块  
  157.     |-----权限管理系统-修改模块  
  158.     |-----权限管理系统-删除模块  
  159.   
  160.     |-----权限管理系统-角色管理  
  161.     |-----权限管理系统-添加角色并为角色设置权限  
  162.     |-----权限管理系统-为当前角色添加操作权限  
  163.     |-----权限管理系统-为当前角色删除操作权限  
  164.     |-----权限管理系统-修改角色  
  165.     |-----权限管理系统-删除角色  
  166.   
  167.     |-----权限管理系统-添加管理员的同时为管理员设置多个角色  
  168.     |-----权限管理系统-添加管理员角色  
  169.     |-----权限管理系统-修改管理员角色  
  170.     |-----权限管理系统-删除管理员角色  
  171.     |-----权限管理系统-当前管理员角色列表  
  172.       
  173. 25、显示最后一条查询的sql语句:主要用于在连贯操作时,检测拼接的sql语句是否正确   
  174.       
  175.     echo $this->db->last_query();//如:select * from pt_users where uid>10 order by datetime desc limit 0,10   




部分截图如下,敬请期待。。。:






数据库操作类之间的继承关系(区分数据库普通操作类和数据库快捷操作类),如图所示:


模型类分析:CI_Model


模型类分析:CI_Model



数据库普通操作类(CI_DB_driver)中的query()方法内部,通过$driver= $this->load_rdriver(); $RES= new $driver();两行代码加载并实例化了一个CI_DB_mysql_result结果集对象(总结:以驱动的方式加载结果集对象),经过对结果集对象的一些列初始化操作,最终返回此结果集对象(总结:query()方法中返回了一个CI_DB_mysql_result结果集对象)

数据库快捷操作类(CI_DB_active_record)中的get()、insert()等多个方法内部都调用了数据库普通操作类中的query()方法,即:间接的返回了CI_DB_mysql_result结果集对象

数据库快捷操作类中很多对结果集的操作函数内部都是通过封装返回的CI_DB_mysql_result结果集对象中的方法来完成相似功能的(总结:get()、insert()方法内部最后调用了query()方法,并返回query()方法执行的结果,所以返回的也是一个CI_DB_mysql_result结果集对象)

数据库快捷操作类中的方法其实只干了一件事情,那就是通过函数的方式帮助我们拼接了要执行的sql语句,并执行该sql语句

但是对于复杂的sql语句,尤其对于复杂的多表查询语句,个人还是建议直接使用数据库普通操作类中的query()方法(适用于两个表以上的情况)

对于返回的结果集对象而言,结果集对象中的方法是通用的(总结:CI_DB_mysql_result结果集对象中对结果集的处理函数对于数据库普通操作类和数据库快捷操作类是通用的)


我们可以这样理解:数据库快捷操作类是对数据库普通操作类的二次封装


提示:数据库操作类的继承关系

class CI_DB_active_record extends CI_DB_driver {

//代码

}


  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值