关于CI中的MVC以及扩展CI中的控制器
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中的控制器的更多相关文章
- JavaEE中的MVC(五)定制Struts——Action跳转JSP
在JavaEE中的MVC(三)中,我在Servlet中引入了命令模式的使用,采用Xml配置的方式,实现了一个Servlet调用多个不同的Action类,但是还不能实现页面地跳转,这一篇博客从之前的代码 ...
- CodeIgniter学习笔记三:扩展CI的控制器、模型
一.扩展CI中的控制器 有时需要对CI中的控制器作统一操作,如进行登录和权限验证,这时就可以通过扩展CI控制器来实现. 扩展CI控制器只需要在application/core文件夹中建一个继承自CI_ ...
- iOS中 为 iOS 建立 Travis CI 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! 你是否曾经试着为 iOS 项目搭建一台支持持续集成的服务器,从我的个人经验而言,这可不是一个轻松的活.首先需要准备 ...
- CI在nginx环境下去掉url中的index.php
在nginx环境下CI框架默认URL规则访问不了,出现500错误,如: http://blog.php230.com/index.php/keywords 今天在服务器配置CI框架环境时,去除URL中 ...
- 二十七、EFW框架BS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- 蒋金楠How ASP.NET MVC Works?[持续更新中…]
一.ASP.NET + MVC IIS与ASP.NET管道 MVC.MVP以及Model2[上篇] MVC.MVP以及Model2[下篇] ASP.NET MVC是如何运行的[1]: 建立在“伪”M ...
- PHP中的MVC
在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...
- MVC 用扩展方法执行自定义视图,替代 UIHint
MVC 用扩展方法执行自定义视图,替代 UIHint 项目中用了 Bootstrap , 这样就不用写太多的CSS了,省去很多事情.但是这个业务系统需要输入的地方很多,每个表都有100多个字段,每个页 ...
- MVC如何在Pipeline中接管请求的?
MVC如何在Pipeline中接管请求的? 文章内容 上个章节我们讲到了,可以在HttpModules初始化之前动态添加Route的方式来自定义自己的HttpHandler,最终接管请求的,那MVC是 ...
随机推荐
- PHP共享内存
如何使用 PHP shmop 创建和操作共享内存段,使用它们存储可供其他应用程序使用的数据. 1. 创建内存段 共享内存函数类似于文件操作函数,但无需处理一个流,您将处理一个共享内存访问 ID.第一个 ...
- php第十一节课
增删改查 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- Python语言简介
一.Python语言发展史 1989年吉多·范罗苏姆(Guido van Rossum)中文外号“龟叔”,圣诞节期间开始编写Python语言的编译器. Python这个名字,来自Guido所挚爱的电视 ...
- 2018 noip 考前临死挣扎
基础算法 倍增 贪心 分块 二分 三分 数据结构 线段树 对顶堆 数学 质数 约数 同余 组合 矩阵乘法 图论 二分图判定以及最大匹配 字符串 Tire树 KMP 最小表示法 Hash Manache ...
- 邓_ PHP·笔记(函数总结)
PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名) PHP 是一种服务器端的脚本语言,类似 ASP PHP 脚本在服务器上执行 PHP 支持 ...
- android的数据与访问(2)-delphi xe7如何存取我的app配置参数文件?
这种方法不推荐,因为该SharedPreference是android的方法.你想跨平台,在ios上就不能使用.建议还是用ini or xml.android因为读写该二种文件比较繁琐,所以推出自己简 ...
- WEB测试范围小结
根据<用户需求说明手册>和<需求分析说明书>,分析各个功能模块.针对各个功能模块进行相关功能的测试. 链接测试 链接是Web 网站的一个主要特征,它是在页面之间切换和引导用户去 ...
- NodeJS的安装与使用
Node.js 就是运行在服务端的 JavaScript.越来越多的人在使用它,通过他我们可以用JavaScript来构建后台.对于前端程序员而言,不言而喻这是一条多么令人振奋的消息.对于后台程序员而 ...
- (11)Spring Boot配置ContextPath【从零开始学Spring Boot】
Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application ...
- hdu 2897简单博弈
#include<stdio.h> int main() { int n,p,q,k; while(scanf("%d%d%d",&n,& ...