CI(CodeIgniter)框架入门

什么是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 中, 每一个类和方法都是高度独立的,从而可以最大程度的被复用。
发布了62 篇原创文章 · 获赞 68 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/magic_world_wow/article/details/104648086