zoukankan      html  css  js  c++  java
  • ci的一些基础内容

    第一部分:

    load: view,model,database,helper,driver
    
    helpers辅助函数: system/helpers/常用:url/常用:url,form,text,cookie,file
    1. 加载:$this->load->helper('name'); #先application/helpers,如果没找到则去system/helpers中查找
    2. 文件名:eg: url_helper文件,$this->load->helper('url') #去掉_helper和.php
    3. 没有返回值,可在控制器和视图中加载、
    4. 加载多个:$this->load->helper(array('helper1', 'helper2', 'helper3'));
    5. 自动加载: application/config/autoload.php的autoload中加载即可
    6. 使用:<?php echo anchor('blog/comments', 'Click Here');?> #链接
    7. 设置自定义前缀:$config['subclass_prefix'] = 'MY_';
    8. 扩展辅助函数:eg: application/helpers/MY_array_helper.php,添加或重写函数
    
    CI类库:system/libraries/
    1. 加载:$this->load->library('class_name');
    2. 加载多个类库:$this->load->library(array('email', 'table'));
    3. 数据库类库不能被扩展和替换,其他均可
    4. $this只能在控制器,视图,和模型中直接使用,所以自定义类库时想要调用CI原生资源,需要通过$CI =& get_instance();来获取
    5. 替换则相同命名即可,扩展则继承原来的类并调用父类构造函数
    6. 使用类库:$this->some_class->some_mothod();
    7. 自定义前缀:$config['subclass_prefix'] = 'MY_';
    
    CI驱动器:system/libraries/,每个驱动器都有一个独立的目录,目录名和驱动器名一致,且目录下有一个drivers的子目录存放子类文件
    1. 加载驱动器类:$this->load->driver('some_parent');
    2. 调用:$this->some_parent->some_method();
    3. 调用子类:$this->some_parent->child_one->another_method(); #不用初始化子类,这就是驱动器的作用,方便
    4. 子驱动并不继承主驱动,所以子驱动中无法使用主驱动的属性和方法
    5. 自定义驱动:目录结构一样即可
    
    CI核心类库:system/core #CI运行时加载
    1. 替换:application/core中创建相同名文件
    2. 扩展:继承原来的核心类,然后控制器使用自己的核心类
    3. 自定义前缀:$config['subclass_prefix'] = 'MY_';
    
    CI创建附属类:创建类,如要使用CI资源,则使用$CI =& get_instance();
    
    CI钩子:修改框架内部运行流程,而不修改核心文件,如在控制器调用前后添加处理函数
    1. 启动钩子:$config['enable_hooks'] = TRUE;
    2. 定义钩子:application/config/hooks.php中定义, 可直接$hook['post_controller'] = function(){}处理,或$hook['pre_controller'] = array('class/function/filename/filepath/params'=>'')找到执行脚本
    3. 挂钩点:pre_system,pre_controller,post_controller_constructor,post_controller,display_override,cache_override,post_system这些挂钩点
    
    CI自动加载资源:每次系统运行时都会自动初始化类库、辅助函数和模型,如果需要全局使用,则可以自动考虑自动加载
    1. 支持自动加载的有:libraries/,helpers/,config/,system/language/,models/
    2. 在application/config/autoload.php中添加,autoload时无需加扩展名.php
    3. 使用composer自动加载:$config['composer_autoload]=TRUE;
    
    CI公共函数:CI定义了一些全局函数,任何地方均可使用
    1. is_php($version) #判断当前php版本是否高于或等于某个版本
    2. is_really_writable($file) #判断文件是否真的可写入
    3. config_item($key) #访问单个配置项的函数
    4. set_status_header($code[,$text='']) #用于手动设置HTTP状态码
    5. remove_invisible_characters($str[, $url_encoded = TRUE]) #防止在ASCII字符串中插入空字符
    6. html_escape($var)  #类似htmlspecialchars(),可以接受数组参数
    7. get_mimes() #返回 application/config/mimes.php 文件中定义的 MIME 数组的 引用
    8. is_https()  # HTTPS 安全连接时返回 TRUE
    9. is_cli()  #命令行下运行时返回 TRUE
    10. function_usable($function_name)  #函数是否可用,可用返回 TRUE ,否则返回 FALSE 
  • 相关阅读:
    idea 2019 1 spring boot 启动报错 An incompatible version [1.2.12] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
    MONGODB-LINUX 安装步骤
    MYSQL-LINUX 安装步骤
    虚拟机linux centos7 查找ip不到的设置
    Spring Boot (日志篇):Log4j2整合ELK,搭建实时日志平台
    spring boot跨域请求访问配置以及spring security中配置失效的原理解析
    Java设计模式:23种设计模式
    注解实现原理
    【Azure 环境】Windows中安装Python azure-eventhub-checkpointstoreblob-aio模块时出错 ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory:
    【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题
  • 原文地址:https://www.cnblogs.com/maoriaty/p/9061149.html
Copyright © 2011-2022 走看看