CodeIgniter框架源码学习之全局函数文件--Common.php

文件位置 : ./system/core/Common. php
CodeIgniter  使用了一些全局定义的函数来完成操作,在任何情况下你都能够使用这些函数。使用他们不需要载入任何类库或辅助函数。
这些函数主要用于加载基类和执行请求。
1、第一个函数is_php  判断当前php 版本是否大于指定的 php 版本,有些地方需要用到这个函数
2、 判断文件夹是否有可写权限 is_really_writable() 因为函数is_writable() window unix 中并不可靠,所以要对它进行重新封装 。在 Windows 平台, is_writable() 函数在实际没有文件写权限时也返回真。那是因为,只有文件有只读属性时, 操作系统 才向 PHP 报告为假。 unix 中当 safe_mode为开启状态下也是不可靠的。 这个函数依靠对文件的先行写入来判断是否真的具有写权限。
3  、类注册器load_class(),这是一个单例模式的函数,如果请求的类没有找到会将它设置为一个静态变量,如果以前存在就直接返回。
4、 is_loaded();  追踪已经加载的类,这个函数被 load_class  调用
 5、get_config();  加载主配置文件 ;通过这个函数可以得到CI的超级对象,它在所有地方都是可以调用的。具体的可以看Controller.php中的代码。controller把自身$this的引用,保存到静态变量$instance,get_instance()获得这个静态变量就是controller的$this。然而这个$this就是一个超级对象。这里使用静态变量可以让超级对象存储于内存中的静态变量数据区,该区域中的数据在整个程序运行期间一直存在的。也就是他的作用于是在任何地方都可以调用到得。使用引用可以避免重复的产生这个数据副本,提高效率。
6、 config_item()  返回指定的配置项
7、get_mimes() 返回config/mimes.php中的MIME types数组
8、is_https()判断应用是不是通过一个加密的链接请求(https),返回true或者false
9、is_cli()测试一个请求是不是从命令行发出的
10、  show_error错误处理程序 这个函数调用异常处理类并且使用 application/errors/error_general.php 模板来显示错误
11、 show_404 这个函数和show_error相似,不过主要是为了显示404错误
12、 log_message(‘级别’, ‘消息’)  记录错误日志 ;这个函数可以让你将消息写入记录文件中。你必须在第一个参数中选择三个 级别 中的任何一个 指明它是那一类消息 ( 调试  debug,  错误  error,  信息 info) 。 第二个参数是消息本身。 他会调用system/libraries/log.php  进行处理; 如果这个config_item('log_threshold') 为0  则不进行任何处理,也就不会记录错误日志了
13、 set_status_header   设置 http 状态头
14、_error_handler 错误处理函数;当遇到错误时,设置http请求头状态500网络服务器错误,指示客户端哪里出错;这个功能不能在 $_error->show_php_error 方法中被实现因为这只有当display_errors方法的flag参数被设置时才会调用(而生产环境通常时不会被设置的 生产环境在index.php中设置)或者错误被忽略因为错误高于error_reporting的错误等级
15、_exception_handler 异常处理程序 发送没有被捕捉的异常到log里并且展示出来,当然,这也是不在生产环境下的
16、_shutdown_handler 这个方法在 CodeIgniter.php文件顶端被定义,主要的原因是为了模拟一种通常的异常处理
17、 remove_invisible_characters  阻止null字符被夹在中间,比如ascii字符 , Java\0script.
18、 html_escape  把一些预定义的字符转换为  HTML  实体 ;它接受字符串和数组。有助于防止跨站脚本攻击( XSS
19、_stringify_attributes 在使用html标签的时候参数字符化,辅助函数通常将一个字符,数组,对象转化成一个字符
20、function_usable 主要作用相当于function_exists

你可能感兴趣的:(CI源码)