MVC是一种设计模式模式,M(模型)—V(视图)—C(控制器);

  MVC的核心思想是强制开发者在进行项目开发时,将数据的输入,处理,输出分开编写;

    1.入口文件:该文件是唯一一个给浏览器直接请求的脚本文件;通常是以index.php 命名;

    2.控制器:负责协调模型和视图,以及一些验证权限等;controller;

    3.模型:提供数据,保存数据,数据有效性验证;model;

    4.视图:负责显示以及表单的数据收集;view;

    5.动作(方法):控制器中的公开方法,用于被浏览器请求;action;

  CI中的MVC:

    访问URL使用的是pathinfo模式;访问规则:http://主机名/入口文件/控制器/动作(方法)

    application目录中:

      controllers  控制器;

      models     模型;

      views     视图;

    CI中默认控制器是welcome控制器;默认方法是index方法;

    控制器:

      1.不需要加后缀;

      2.文件名全部小写;

      3.所有控制器需要直接或间接继承CI_Cortroller类,所有CI所提供的类都以CI_开头;

      4.控制器中对动作(方法)的要求:只有public才能被浏览器直接访问,方法名不能以_开头;

    模型:

      1.写模型一定要继承CI_Model;

      2.文件名全小写,类名首字母大写,建议使用_model做后缀,防止与控制器类名冲突;

      3.控制器调用模型应在控制器中加载模型 $this -> load -> model( ' 模型名 ' );加载完之后作为一个超级对象使用;

      4.$this -> 模型名 -> 方法();调用模型获取数据;

    视图:

      1.在控制器中加载视图: $this -> load -> view( ‘ 视图名 ’ );如有子目录则 view( ‘ 目录名/视图名 ’ );

      2.在视图中可以直接使用PHP的原生代码;

      3.推荐使用< ?php foreach($list as $item) : ?> <?=$item[ ' ' ]?> <?php endforeach; ?> 短标签;

  一整套MVC开发模式应该是使用控制器(controller)调用模型(model)方法获取数据再将数据返回给视图(view);

      

  如何扩展CI中的控制器,在CI主目录的application/core文件夹下自定义一个MY_Controller控制器类来继承CI_Controller控制器类,在项目中写控制器时直接继承自定义的MY_Controller控制器类就可以得到MY_Controller控制器类和CI_Controller控制器类中的方法;通常MY_Controller控制器类可以写一些自己的方法(登陆验证,权限验证等);如果不想用 MY_ 的默认前缀也可以在 application/config/config.php 文件中配置 $config[ ' subclass_prefix ' ] = ' MY_ ' ; 当中修改;

关于CI中的MVC以及扩展CI中的控制器的更多相关文章

  1. JavaEE中的MVC(五)定制Struts——Action跳转JSP

    在JavaEE中的MVC(三)中,我在Servlet中引入了命令模式的使用,采用Xml配置的方式,实现了一个Servlet调用多个不同的Action类,但是还不能实现页面地跳转,这一篇博客从之前的代码 ...

  2. CodeIgniter学习笔记三:扩展CI的控制器、模型

    一.扩展CI中的控制器 有时需要对CI中的控制器作统一操作,如进行登录和权限验证,这时就可以通过扩展CI控制器来实现. 扩展CI控制器只需要在application/core文件夹中建一个继承自CI_ ...

  3. iOS中 为 iOS 建立 Travis CI 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博! 你是否曾经试着为 iOS 项目搭建一台支持持续集成的服务器,从我的个人经验而言,这可不是一个轻松的活.首先需要准备 ...

  4. CI在nginx环境下去掉url中的index.php

    在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...

  5. 二十七、EFW框架BS系统开发中的MVC模式探讨

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...

  6. 蒋金楠How ASP.NET MVC Works?[持续更新中…]

    一.ASP.NET + MVC IIS与ASP.NET管道 MVC.MVP以及Model2[上篇]  MVC.MVP以及Model2[下篇] ASP.NET MVC是如何运行的[1]: 建立在“伪”M ...

  7. PHP中的MVC

    在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...

  8. MVC 用扩展方法执行自定义视图,替代 UIHint

    MVC 用扩展方法执行自定义视图,替代 UIHint 项目中用了 Bootstrap , 这样就不用写太多的CSS了,省去很多事情.但是这个业务系统需要输入的地方很多,每个表都有100多个字段,每个页 ...

  9. MVC如何在Pipeline中接管请求的?

    MVC如何在Pipeline中接管请求的? 文章内容 上个章节我们讲到了,可以在HttpModules初始化之前动态添加Route的方式来自定义自己的HttpHandler,最终接管请求的,那MVC是 ...

随机推荐

  1. http 请求头示例

      POST /3-0/app/account/item HTTP/1.1 Host 10.100.138.32:8046 Content-Type application/json Accept-E ...

  2. jq 替换DOM layeui 不刷新

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 理解Linux CPU负载和 CPU使用率

    CPU负载和 CPU使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入w ...

  4. SQL第一节课

    phpmyadmin create table 表名( 列名 数据类型 是否为空 (是否主键|是否唯一|外键关系), 列名 数据类型...(最后一列不加逗号)) create database 数据库 ...

  5. php进程daemon化的正确做法

    [原文地址:https://blog.ti-node.com/blog...] daemon 音标 : ['di:mən] , 中文含义为守护神或精灵的意思 . 其实它还有个意思 : 守护进程 . 守 ...

  6. QT5的模块介绍【摘】

    Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分.前者是基础模块,在所有平台上都可用:后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平 ...

  7. sqlserver日志文件太大解决方法

    SQL Server 的事务日志意外增大或充满的处理方法 事务日志文件Transaction Log File是用来记录数据库更新情况的文件,扩展名为ldf. 在 SQL Server 7.0 和 S ...

  8. 执行计划中Using filesort,Using temporary相关语句的优化解决

    昨天听开发人员提到,相关的彩票网页当中一个页面刷新的很慢,特别是在提取数据的时候,今天早上一到,便去找开发人员要去相关的也没进行浏览,窥探哪些数据出现了问题,开发人员使用PHP开发,所以我用IE很容易 ...

  9. 小记——Grub Rescue恢复

    下面我要讲的是一个悲伤的故事 引子 电脑状况简介:两块硬盘(1HHD.1SSD),SSD上装了LINUX(40G)+WIN10(50G)的双系统,SSD剩余部分在WIN下使用装程序,HHD做仓库.LI ...

  10. [bzoj3307]雨天的尾巴_线段树合并

    雨天的尾巴 bzoj-3307 题目大意:N个点,形成一个树状结构.有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成所有发放后,每个点存放最多的是哪种物品. ...