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. PHP共享内存

    如何使用 PHP shmop 创建和操作共享内存段,使用它们存储可供其他应用程序使用的数据. 1. 创建内存段 共享内存函数类似于文件操作函数,但无需处理一个流,您将处理一个共享内存访问 ID.第一个 ...

  2. php第十一节课

    增删改查 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  3. Python语言简介

    一.Python语言发展史 1989年吉多·范罗苏姆(Guido van Rossum)中文外号“龟叔”,圣诞节期间开始编写Python语言的编译器. Python这个名字,来自Guido所挚爱的电视 ...

  4. 2018 noip 考前临死挣扎

    基础算法 倍增 贪心 分块 二分 三分 数据结构 线段树 对顶堆 数学 质数 约数 同余 组合 矩阵乘法 图论 二分图判定以及最大匹配 字符串 Tire树 KMP 最小表示法 Hash Manache ...

  5. 邓_ PHP·笔记(函数总结)

    PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名) PHP 是一种服务器端的脚本语言,类似 ASP PHP 脚本在服务器上执行 PHP 支持 ...

  6. android的数据与访问(2)-delphi xe7如何存取我的app配置参数文件?

    这种方法不推荐,因为该SharedPreference是android的方法.你想跨平台,在ios上就不能使用.建议还是用ini or xml.android因为读写该二种文件比较繁琐,所以推出自己简 ...

  7. WEB测试范围小结

    根据<用户需求说明手册>和<需求分析说明书>,分析各个功能模块.针对各个功能模块进行相关功能的测试. 链接测试 链接是Web 网站的一个主要特征,它是在页面之间切换和引导用户去 ...

  8. NodeJS的安装与使用

    Node.js 就是运行在服务端的 JavaScript.越来越多的人在使用它,通过他我们可以用JavaScript来构建后台.对于前端程序员而言,不言而喻这是一条多么令人振奋的消息.对于后台程序员而 ...

  9. (11)Spring Boot配置ContextPath【从零开始学Spring Boot】

    Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application ...

  10. hdu 2897简单博弈

    #include<stdio.h> int main() {     int n,p,q,k;    while(scanf("%d%d%d",&n,& ...