什么是CI框架: CdoeIgniter是为PHP开发人员提供的一套Web应用程序工具包。他的目的是能够让你从零开始更加快速的完成项目,它提供了一套丰富的类库来满足我们的日常需求,并且提供了一个简单的接口和逻辑结构来调用这些库。CodeIgniter 通过最小化你需要的代码量,让你把更多的精力放到项目的创造性开发上。
优势:

  • CodeIgniter是免费的,通过MIT开源许可协议授权,可以任意使用。
  • 轻量级的,我们的核心系统只需要一些非常小的库,这和那些需要大量资源的框架恰好相反。而且,库都是根据请求动态加载,你需要什么才加载什么,所以核心系统是个非常轻快的系统。
  • 快速的,很难找到一个比CodeIgniter更快的框架。
  • 使用MVC架构,CodeIgniter使用了模型-视图-控制器的架构,它很好的将逻辑层和表示层分离。特别是对于那些使用了模板文件的项目来说更好,能够减少模板文件的代码量。
  • 生成干净的URL,生成的URL非常干净,而且对搜索引擎友好。不同于标准的“查询字符串”方法,CodeIgniter使用了基于段的方法(默认的URL中包含index.php文件,但是可以通过更改 .htaccess文件来去掉)。
  • 功能强大,拥有全面的类库,能满足大多数Web开发任务的需要,例如:访问数据库、发送邮件、验证表单数据、会话管理、处理图像、处理XML-RPC数据等。
  • 可扩展的,系统可以非常简单的通过你自己的类库和辅助函数来扩展,也可以通过类扩展或系统钩子来实现。
  • 不需要模板引擎,尽管自带了一个非常简单的可选的模板解析器,但并不强制你使用模板。模板引擎性能无法和原生PHP代码相比,另外使用模板引擎还需要学习一种新语法,而使用原生PHP代码只需掌握基本的PHP语法即可。
  • 拥有全面的文档
  • 拥有一个友好的用户社区

应用程序流程:

  • index.php文件作为前端控制器,初始化运行CodeIgniter所需的基本资源;
  • Router检查HTTP请求,以确定如何处理请求;
  • 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程;
  • 在加载应用程序控制器之前,对HTTP请求以及任何用户提交的数据进行安全检查;
  • 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;
  • 最后一步,渲染试图并发送至浏览器,如果开启了缓存,视图会先缓存起来用于后续的请求。

模型-视图-控制器

  • CodeIgniter的开发基于MVC设计模式,MVC是一种用于将应用程序的逻辑层和表现层分离出来的方法。在实践中,由于这种分离所以你的页面中只包含很少的PHP脚本。
  • 模型: 代表你的数据结构。通常来说,模型类将包含帮助你对数据库进行增删改查的方法。
  • 视图: 是要展现给用户的信息。一个视图通常就是一个页面,但是在CodeIgniter中,一个视图可以是一部分页面,他也可以是一个RSS页面,或其它类型的页面。
  • 控制器: 是模型、视图以及其它任何处理HTTP请求所需资源的中介,并生成网页。
  • CodeIgniter 在 MVC 使用上非常宽松,因为模型不是必需的。如果你不需要使用模型这一层,或是 认为维护模型比你想象中的复杂很多,那么你可以忽略它,而只使用控制器和视图创建你的应用程序。 CodeIgniter 可以让你直接调用你现有的脚本,甚至你也可以为系统开发核心类,总之, CodeIgniter 让你以你感觉最舒适的方式进行开发。

设计与架构目标
CodeIgniter 的目标是在最小化,最轻量级的开发包中得到最大的执行效率、功能和灵活性。为了达到这个目标,我们在开发过程的每一步都致力于基准测试、重构和简化工作, 拒绝加入任何对实现目标没有帮助的东西。从技术和架构角度看,CodeIgniter 按照下列目标创建:

  • 动态实例化: 在 CodeIgniter 中,组件的导入和函数的执行都是在被请求的时候才执行,而不是全局的。除核心资源外,系统不需要任何其他资源,因此系统默认是非常轻量级的。HTTP 请求所触发的事件以及你设计的控制器和视图将决定哪些资源是需要加载的。
  • 松耦合: 耦合是指一个系统中组件之间的依赖程度。组件之间的依赖程度越低, 系统的重用性和灵活性就越好。我们的目标就是打造一个松耦合的系统。
  • 组件专一性: 专一性指的是组件对某个目标的专注程度。在 CodeIgniter 中, 每一个类和方法都是高度独立的,从而可以最大程度的被复用。

CI(CodeIgniter)框架入门相关推荐

  1. php ci CodeIgniter框架图片缩略图处理类优化 缩放到固定大小

    上传图片生成指定大小的缩略图,原始图片可以是任何尺寸的,生成的缩略图不会变形. //上传文件路径$upload_dir = __DIR__."/uploads/"; if ($th ...

  2. ci php做记录删除,CI(CodeIgniter)框架中的增删改查操作_PHP教程

    CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 代码如下: class ModelName extends CI_Model { funct ...

  3. php ci hooks,CodeIgniter框架钩子机制实现方法【hooks类】

    本文实例讲述了CodeIgniter框架钩子机制实现方法.分享给大家供大家参考,具体如下: 记得上一次去到喜啦面试,面试官问我一个问题:codeigniter是如何实现钩子机制的? 当时答不上来,后来 ...

  4. 基于ci框架 php商城,如何基于CodeIgniter框架实现购物车功能

    这篇文章主要介绍了基于CI(CodeIgniter)框架实现购物车功能的方法,结合实例形式分析了CodeIgniter框架购物车功能类的定义及数据库建立相关sql命令,需要的朋友可以参考下 本文实例讲 ...

  5. 解析CI即CodeIgniter框架在Nginx下的重写规则

    本篇文章是对CI即CodeIgniter框架在Nginx下的重写规则进行了详细的分析介绍,需要的朋友参考下 最近研究CI框架,发现这个框架的路由功能在Nginx下有问题,报404错误,后来在网上查资料 ...

  6. **【ci框架】精通CodeIgniter框架

    http://blog.csdn.net/yanhui_wei/article/details/25803945 一.大纲 [php] view plaincopy 1.codeigniter框架的授 ...

  7. php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

    CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...

  8. php ci log,PHP框架CI CodeIgniter 的log_message开启日志记录方法

    PHP框架CI CodeIgniter 的log_message开启日志记录方法 第一步:index.php文件,修改环境为开发环境 define('ENVIRONMENT', 'developmen ...

  9. php ci框架开发手册下载,php敏捷开发codeigniter框架-CodeIgniter教程(中文手册)pdf格式免费完整版-东坡下载...

    这既是一份CodeIgniter教程,也是一份不可多得的CodeIgniter中文手册,更具体一点来说,它其实是<php敏捷开发codeigniter框架>,如果你需要一份这样的codei ...

最新文章

  1. 【组队学习】一月微信图文索引
  2. opencv_IplImage未定义的标识符解决
  3. PHP-FPM,Nginx,FastCGI 三者之间的关系
  4. C#中Monitor和Lock以及区别
  5. ubuntu上使用cron执行定时任务计划
  6. ECshop二次开发 ECSHOP首页显示积分商城里的商品
  7. 10 Ways To Suck At Programming
  8. Java 发展简史:初生遇低谷,崛起于互联网
  9. Oracle 10g升级之--PSU 升级(续)
  10. python常用代码大全-python基础,python基础代码大全
  11. ISO20000/ISO27001体系认证最短周期
  12. 本地浏览器远程访问服务器tensorboard(MobaXterm)
  13. mysql查询表中不重复数据
  14. 前端开发必备之MDN(API查阅文档)
  15. TfLite: 把pb、h5文件转换为TfLite格式and quantilize
  16. Java项目:企业绩效考核管理系统(java+SSM+JSP+bootstrap+jQuery+Mysql)
  17. android cursor
  18. 微机系统与接口——1.微型计算机基础
  19. 在大学非计算机专业怎样学编程
  20. excel二级联动制作

热门文章

  1. Python2.7获取QQ空间部分好友
  2. matlab输出c语言,MATLAB数据输入和输出 C语言转换
  3. 《机器学习方法(第三版)—— 李航》学习笔记(四)
  4. 蓝桥杯-杨辉三角形-python
  5. python 除了 不会生猴子外 其他都可以
  6. 成都百词斩2018web前端秋招笔试题
  7. 修改linux终端命令行颜色
  8. 4. Python--Scipy库(下/13-17)
  9. Jmeter调用第三方jar包,配合BeanShell使用
  10. 经典算法之直接选择排序