第一部分:
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