美文网首页
11 CI框架分析

11 CI框架分析

作者: 降水 | 来源:发表于2019-08-29 13:56 被阅读0次

CodeIgniter 是一个小巧但功能强大的 PHP 框架,当前下载包2.6M,作为一个简单而“优雅”的工具包,适合开发者们建立功能完善的 Web 应用程序。

官方地址【CI 3.1.5】: https://codeigniter.org.cn/
CI 4.x 版本地址:https://codeigniter-chinese.github.io/codeigniter4-user-guide/index.html

1 CI应用程序流程图

下图说明了整个系统的数据流程:

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

主要有三个目录
1 > application目录:用于开发者编写相应的配置以及逻辑处理,开发者只需在这个目录下添加自己需要的开发文件。
2 > system目录:框架的系统库,里面包括核心库,类库,辅助类库,数据库等。
3 > user_guide:用户手册。

image.png
3 CI框架运行流程
ci2.png
  • 1 入口文件index.php, 定义环境常量ENVIRONMENT ,路径常量BASEPATHAPPPATHVIEWPATH,引入核心库system/core下的 CodeIgniter.php文件
  • 2 初始化核心库system/core里的类库,引用配置文件,错误处理,钩子函数
{
    benchmark: "Benchmark",
    hooks: "Hooks",
    config: "Config",
    log: "Log",
    utf8: "Utf8",
    uri: "URI",
    router: "Router",
    output: "Output",
    security: "Security",
    input: "Input",
    lang: "Lang",
    loader: "Loader"
}
  • 3 钩子函数五个:
    pre_system 在系统执行的早期调用,这个时候只有 基准测试类 和 钩子类 被加载了, 还没有执行到路由或其他的流程。
    pre_controller 在你的控制器调用之前执行,所有的基础类都已加载,路由和安全检查也已经完成。
    post_controller_constructor 在你的控制器实例化之后立即执行,控制器的任何方法都还尚未调用。
    post_controller 在你的控制器完全运行结束时执行。
    post_system 在最终的页面发送到浏览器之后、在系统的最后期被调用。

  • 4 实例化 CI_Controller

function &get_instance()
{
      return CI_Controller::get_instance();
}

路由类Router 解析url获取请求的 controller控制器、method方法 以及参数,加载application/config配置文件中 相应的 librays 类库helper辅助函数DB 库,也可添加model类,执行方法,渲染html页面

  • 5 加载CI 类库system/libraries/和自定义类库application/libraries
$this->load->library('class_name');
$this->load->library('form_validation');  //加载 表单验证类库
类库参考
  • 6 加载系统辅助函数 system/helpers 和自定义辅助函数 appliation/helpers
$this->load->helper('name');
$this->load->helper('url');   //加载 URL 辅助函数 ,它的文件名为 url_helper.php
$this->load->helper(
    ['helper1', 'helper2', 'helper3']
);                            //加载多个辅助函数
辅助函数参考

相关文章

  • 11 CI框架分析

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,当前下载包2.6M,作为一个简单而“优雅”的工具包,...

  • CI框架结构

    CI框架简介 CI框架特点 1.单入口 htaccess? 单入口的好处? CI框架路径结构 代码选用ci-3....

  • 2 CI框架分析

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,当前下载包2.6M,作为一个简单而“优雅”的工具包,...

  • CI框架目录结构分析

    application:具体项目开发目录; system:CI框架代码; user_guide:用户手册,和实现无...

  • CodeIgniter源码分析[2]——启动器CodeIgnit

    有关CodeIgniter源码分析的后续的更新移动到了我的GitHub 在CI框架中CodeIgniter.php...

  • ci框架

    什么是MVC mvc 是一种将应用程序的逻辑层和表示层分离开来的软件方法 使用ci的默认控制器 可以在 appli...

  • ci框架

    CodeIgniter是一个小巧但功能强大的PHP框架,当前下载包2.6M,作为一个简单而“优雅”的工具包,适合开...

  • iOS-人脸识别之CIDetector(系统框架)

    所属框架:Frameworks->coreImage ((前缀CI)) CIDetector 核心图片检测器 CI...

  • Twig和Medoo之 与CI框架有个约会

    CI框架 介绍优雅的CodeIgniter,称之为CI框架,CodeIgniter 是一个小巧但功能强大的 PHP...

  • CI框架源码研读(整体架构)

    有人说phper的深入要从研读mvc框架开始,我跳了一个常用的CI框架入手,一是因为 CI框架简单轻巧,二是...

网友评论

      本文标题:11 CI框架分析

      本文链接:https://www.haomeiwen.com/subject/efdiectx.html