CodeIgniter框架代码解析

    工作中一直用的codeigniter框架,但是很多核心的内容并不了解是怎么运行的。

    最近工作进度不是很紧,准备花点时间把codeigniter好好的研究一下。

先上index.php文件:

1<?php 2//这个文件是入口,后期所有的文件都是在这里执行。 3/*----------------------------------------------- 4 * 系统环境配置常量 5 * 能够配置错误显示级别 6 * ----------------------------------------------- 7 * 默认情况下: 8 * development //开发环境报告所有错误 9 * testing //测试环境不报告错误 10 * production //生产环境不报告错误 11 */ 12 define('ENVIRONMENT', 'development'); 13 14/* 15 * 根据环境常量打开不同的错误显示级别 16 */ 17 switch (ENVIRONMENT){ 18 case 'development': 19 error_reporting(E_ALL); 20 break; 21 22 case 'testing': 23 case 'production': 24 error_reporting(0); 25 break; 26 27 default: 28 exit('应用的环境设置错误.'); 29 } 30 31/* 32 * --------------------- 33 * 系统文件夹名称 34 * -------------------- 35 * 默认情况下是"system"文件夹,并且在相对于index.php文件同一个目录下。 36 * 你可以更改这个路径,但是路径必须与你的系统文件所在位置一致 37 * 38 * 不需要后面的斜杠"/"; 39 */ 40 41 $system_path = 'system'; 42 43/* 44 *--------------------------------------------------------------- 45 * 应用程序所在文件夹 46 *--------------------------------------------------------------- 47 * 48 * 这个文件夹是放置程序的地方,可以放置在目录中的任何地方。 49 * 50 * 详情可以访问: 51 * http://codeigniter.com/user_guide/general/managing_apps.html 52 * 53 * 不需要后面的斜杠"/"; 54 * 55 */ 56 57 $application_folder = 'app'; 58 59/* 60 * -------------------------------------------------------------------- 61 * 这个地方有一段用户自己设置的代码,我自己还没怎么搞清楚,就不写了 62 * -------------------------------------------------------------------- 63 64/* 65 * --------------------------------------------------------------- 66 * 使用可靠的路径解决路由问题 67 * --------------------------------------------------------------- 68 */ 69 70 // 是否是从命令行运行? 71 if (defined('STDIN')){ 72 73 chdir(dirname(__FILE__)); 74 } 75 76 if (realpath($system_path) !== FALSE){ 77 78 $system_path = realpath($system_path).'/'; 79 } 80 81 // 确保最后一定以后一个斜杠"/"; 82 $system_path = rtrim($system_path, '/').'/'; 83 84 // 判断系统目录是否存在 85 if ( ! is_dir($system_path)){ 86 87 exit("你的系统目录未设置正确. 请打开以下文件重新设置: ".pathinfo(__FILE__, PATHINFO_BASENAME)); 88 } 89 90/* 91 * ------------------------------------------------------------------- 92 * 设置路径常量 93 * ------------------------------------------------------------------- 94 */ 95 // 获得当前文件名 96 define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 97 98 // php文件后缀 99 define('EXT', '.php'); 100 101 // 系统文件夹路径 102 define('BASEPATH', str_replace("\\", "/", $system_path)); 103 104 // 根目录所在绝对路径 105 define('FCPATH', str_replace(SELF, '', __FILE__)); 106 107 // 获得系统文件夹的名称 108 define('SYSDIR', trim(strrchr(trim(BASEPATH, '/'), '/'), '/')); 109 110 // 应用程序文件夹的路径 111 if (is_dir($application_folder)){ 112 113 define('APPPATH', $application_folder.'/'); 114 }else{ 115 if ( ! is_dir(BASEPATH.$application_folder.'/')){ 116 117 exit("你的应用程序目录可能未设置正确. 请打开以下文件设置: ".SELF); 118 } 119 120 define('APPPATH', BASEPATH.$application_folder.'/'); 121 } 122 123/* 124 * -------------------------------------------------------------------- 125 * 文件加载主方法 126 * -------------------------------------------------------------------- 127 */ 128require_once BASEPATH.'core/CodeIgniter'.EXT; 129 130/* End of file index.php */ 131/* Location: ./index.php */
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )