分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

php优秀框架codeigniter学习系列——CodeIgniter.php概览

发布时间:2023-09-06 01:52责任编辑:顾先生关键词:暂无标签

  CodeIgniter.php是CI框架的核心文件。它在前端控制器index.php之后运行,加载各类基础组件,执行请求。文件执行完成后,这次请求也就结束了。所以,该文只能对CodeIgniter.php做一个大致的讲解,中间如果遇到重要部分,会新写一篇日志单独详细讲解。

  CI框架的注释非常的详细和规范。官方对这个文件的解释就是 System Initialization File(系统初始化文件),加载基础类库和执行请求。它不同于index.php只是设置环境和定义重要路径,而是要深入框架的核心了。

  让我们一起来学习这个文件吧。

defined(‘BASEPATH‘) OR exit(‘No direct script access allowed‘);

第一行代码,如果没有定义‘BASEPATH’就退出,而该变量是在index.php文件中定义的。所以用意很明显,防止该文件被直接访问。CI框架的很多文件中都可以看到这行代码。

  

1 const CI_VERSION = ‘3.1.7‘;

定义CI框架的版本,而且是全局变量,每个框架都有类似的定义吧,为什么不使用define定义而是使用静态变量呢,不太清楚

/* * ------------------------------------------------------ * ?Load the framework constants * ------------------------------------------------------ */ ???if (file_exists(APPPATH.‘config/‘.ENVIRONMENT.‘/constants.php‘)) ???{ ???????require_once(APPPATH.‘config/‘.ENVIRONMENT.‘/constants.php‘); ???} ???if (file_exists(APPPATH.‘config/constants.php‘)) ???{ ???????require_once(APPPATH.‘config/constants.php‘); ???}

加载框架的常量。如果环境变量(product,development,test)文件夹存在,且文件夹中有constants.php文件,先加载。而且优先级也比后加载的高。constants.php文件定义的是一些不会去做改变的(用define定义)系统级的常量,比如文件可读写模式,退出状态码等。具体可以参考constants.php学习。

这里有一个小技巧,很多框架在定义一个常量前会用defined去检测是否已定义,对于引用文件则会用file_exists,对于类是否定义则会用class_exists。防止重复定义。

1 /*2 ?* ------------------------------------------------------3 ?* ?Load the global functions4 ?* ------------------------------------------------------5 ?*/6 ????require_once(BASEPATH.‘core/Common.php‘);
View Code

引用常用函数文件。这个文件中的函数都是框架中经常用到的函数,也是核心的一些函数。参考common.php学习。

Security procedures

  对于版本小于5.4的php,将全局变量$GLOBALS数组中的一些变量置为null,说明是出于安全因素。但是我没有找到这个安全因素的起源。

1 ????set_error_handler(‘_error_handler‘);2 ????set_exception_handler(‘_exception_handler‘);3 ????register_shutdown_function(‘_shutdown_handler‘);
View Code

  自定义错误处理程序,异常处理程序,php中止执行处理程序。关于CI的错误和异常处理机制,请看。

php优秀框架codeigniter学习系列——CodeIgniter.php概览

原文地址:https://www.cnblogs.com/Andres/p/8988900.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved