ci框架

作者: 降水 | 来源:发表于2019-09-15 12:57 被阅读0次

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

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

    1CI应用程序流程图

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

    CodeIgniter程序流程

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

    2CI框架源码架构

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

    image.png
    3CI框架运行流程
    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()
    {
    returnCI_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');//加载表单验证类库
    
    类库参考

    *基准测试类
    *缓存驱动器
    *日历类
    *购物车类
    *配置类
    *Email类
    *加密类
    *加密类(新版)
    *文件上传类
    *表单验证类
    *FTP类
    *图像处理类
    *输入类
    *Javascript类
    *语言类
    *加载器类
    *迁移类
    *输出类
    *分页类
    *模板解析类
    *安全类
    *Session类
    *HTML表格类
    *引用通告类
    *排版类
    *单元测试类
    *URI类
    *用户代理类
    *XML-RPC与XML-RPC服务器类
    *Zip编码类

    -6加载系统辅助函数system/helpers和自定义辅助函数appliation/helpers

    $this->load->helper('name');
    $this->load->helper('url');//加载URL辅助函数,它的文件名为url_helper.php
    $this->load->helper(
    ['helper1','helper2','helper3']
    );//加载多个辅助函数
    
    辅助函数参考

    *数组辅助函数
    *验证码辅助函数
    *Cookie辅助函数
    *日期辅助函数
    *目录辅助函数
    *下载辅助函数
    *邮件辅助函数
    *文件辅助函数
    *表单辅助函数
    *HTML辅助函数
    *Inflector辅助函数
    *语言辅助函数
    *数字辅助函数
    *路径辅助函数
    *安全辅助函数
    *表情辅助函数
    *字符串辅助函数
    *文本辅助函数
    *排版辅助函数
    *URL辅助函数
    *XML辅助函数

    相关文章

      网友评论

          本文标题:ci框架

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