CodeIgniter记录错误日志的方法全面总结
本篇章节讲解CodeIgniter记录错误日志的方法。分享给大家供大家参考,具体如下: CI工作流程:所有的入口都从根目录下的index.php进入,确定应用所在目录后,加载 codeigniter/CodeIgniter.php 文件,该文件会顺序加载以下文件执行整个流程。
CodeIgniter的一个类会保存为一个php文件,类名与文件名同名,它的核心应用类会在类名前加"CI_"。
默认程序不记录错误日志,如果有需要的话可以设置: 1、在application/config/config.php中设置: 如果为0表示不输出错误日志,具体可查看里面的介绍; 2、在需要写入错误的页面调用全局函数log_message('级别','消息'),级别有三个,一是error,即php运行错误,二是debug,系统调试,CI本身在很多页面也加了自己的系统debug,三是info,介绍运行中的一些消息,消息内容自己写; 3、默认情况下错误日志存放在application/logs/log-[time].php中,它按日期存放文件,比如:log-2011-6-26表示存入今天的日志内容,一般情况下为了隐藏日志内容须将这个地址挪位,可以在$config['log_path']中设置路径,按要求最好是完整路径信息。 有时需要定义自己的全过程变量以供在其它地方使用,如自定义的session等,在CI中这项工作也很轻松。 1、在application/config/中创建自己的config文件,注意存放文件位置。比如建立一个自己的配置文件mysetting.php,内容, 2、在需要调用自定义全局变量的地方使用$this->config->load('settingfile')函数,比如:
如果有需要也可以通过application/config/autoload.php设置为自动加载。 3、接下来在同一页面中使用 函数,比如:$this->config->item('try');会输出:this is my trying;
上面可以看出,CI中函数调用为:$this->filename的形式,也可以看出CI把整个系统看成一个大的类,然后通过加载、继承等方式获取相应方法。
更多自定义变量参考:http://codeigniter.org.cn/user_guide/libraries/config.html 其实不管是在用CI还是ZF都有同样一个问题,就是路径的问题。前期,我在用ZF做CMS时,我在.htaccess文件中设置了如遇到js,css,img等资源文件都不重定向。但今天在用CI时,却忘记了,弄了半天都没搞好,登陆CI的中国官方网,终于在论坛高手的帮助下把问题觖决了,在这里把它贴出来,供大家分享。 首先,隐藏url中的index.php文件,这样访问其它目录的时候就不会有http://www.xxx.com/index.php/xxx的样式出现,面是直接http://www.xxx.com/xxx形式,在根目录.htaccess文件里设置(作用是隐藏index.php,有时index.php可能不在根目录,则htaccess须移到index.php所在目录),如下: 这里JS,CSS,IMG等资源文件夹与SYSTEM文件夹放在同一级下,独立放置的好处是不用受htaccess的限制,因为htaccess文件写明Deny from all,即拒绝访问。打开application/config/config.php改写配置: 如果 后面没加'/',则在model_rewrite最后一行应写RewriteRule ^(.*)$ /index.php/$1 [L],在index.php前加一个'/'。然后在JS文件夹中建立ajax.js文件,我在VIEW层中的文件为index.html。这样我要引入JS时,可以用CI自带的BASE_URL来设置,如下: 在controllers里相关控制网页里添加(在其它load之前): 在views表现的index.html里:
注:这里url是网站相对URL(好处是可以更改根目录后相对地址不用改变) 这里js文件夹没有重定向,所以可以正常访问,而如果是受限制的页面则比较麻烦了。 好了,CI中引入外部的JS与CSS就这么简单。 具体可查看CI的中国官论坛 http://codeigniter.org.cn/user_guide/helpers/url_helper.html,URL辅助函数一节,
http://codeigniter.org.cn/user_guide/general/urls.html,url设置,
http://codeigniter.org.cn/forums/thread-4-1-2.html,Hex关于隐藏index.php的说明,但他在model_rewrite用了index.php,我觉得用双反斜杠有误。 (另外:特别谢谢CI中国官论坛上的Hex 与visvoy ) 1、将数据从控制器传入视图 由于控制器controllers在ci中扮演交通警察的角色,其是一个大类,而视图view作为controller类中的一个函数中的函数,所以view可以使用controller中的属性。所以可以这样写: Controller类Test View.php 这种直接使用controllers类中的值的方法虽然可行,却不是ci所提倡的。一般来说在controller中使用$this->load->view()的时候可以通过参数传值给view视图: 这里,把需要传递的数值加入至$data数组,ci在核心类中给自动使用extract()函数把数组“解压”出来,成为一个个变量。所以在view中可以直接这样使用变量: 2、模型与视图的交互 在ci中模型总是用以处理数据,模型中数据处理也是通过controller中转到view,所以最好不要试图模型直接与视图联系。手册中有这样一个例子: 更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》及《》 希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |