0

0

CodeIgniter系统流程,codeigniter流程_PHP教程

php中文网

php中文网

发布时间:2016-07-13 10:22:11

|

1138人浏览过

|

来源于php中文网

原创

codeigniter系统流程,codeigniter流程

------------------------------------------------------------------------------------------------------

进入框架入口文件index.php =>

定义应用的当前环境(用于设置错误模式):define('ENVIRONMENT', 'development');

设置系统文件目录名:$system_path = 'system';

设置应用文件目录名:$application_folder = 'application';  //可自定义

立即学习PHP免费学习笔记(深入)”;

定义当前文件名常量:define('SELF', pathinfo(__FILE__, PATHINFO_BASEPATH));

定义PHP文件后缀常量:define('EXT', '.php');  //这个全局常量不推荐使用

定义系统目录路径常量:define('BASEPATH', str_replace('\\', '/', $system_path));

定义前端控制器文件路径常量:define('FCPATH', str_replace(SELF, '', __FILE__));

定义系统目录名常量:define('SYSDIR', trim(strchr(trim(BASEPATH, '/'), '/'), '/'));

定义应用目录路径常量:define('APPPATH', BASEPATH.$application_folder.'/');

加载引导文件:require_once BASEPATH.'core/CodeIgniter.php';

---------------------------------@黑眼诗人 ---------------------------------

进入系统初始化文件CodeIgniter.php =>

define('CI_VERSION', '2.2.0');

 

define('CI_CORE', FALSE);

 

require(BASEPATH.'core/Common.php');   //引入公共函数库文件,包含load_class()等函数

 

require(APPPATH.'config/'.ENVIRONMENT.'/constants.php'); //引入框架常量文件,文件和目录模式 & 文件流模式

 

set_error_handler('_exception_handler');   //定义一个自定义错误处理程序以便记录PHP错误

if ( ! is_php('5.3'))
{
  @set_magic_quotes_runtime(0); // Kill magic quotes
}

 

if (isset($assign_to_config['subclass_prefix']) AND $assign_to_config['subclass_prefix'] != '')

//设置子类前缀
{
  get_config(array('subclass_prefix' => $assign_to_config['subclass_prefix']));
}

 

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)

//设置一个自由的脚本执行时间限制
{
  @set_time_limit(300);
}

 

$BM =& load_class('Benchmark', 'core');

//实例化Benchmark基准类,此类使你可以标记点并计算它们之间时间差,内存消耗也可以显示

$BM->mark('total_execution_time_start');

//基准标记,总执行时间开始:$this->marker['total_execution_time_start'] = microtime();
$BM->mark('loading_time:_base_classes_start');

//基准标记,加载的时间:$this->marker['loading_time:_base_classes_start'] = microtime();

 

$EXT =& load_class('Hooks', 'core');    //实例化Hooks钩子类,提供一种不堆砌来扩展基础系统的机制

$EXT->_call_hook('pre_system');     //调用指定钩子pre_system

 

$CFG =& load_class('Config', 'core');   //实例化Config配置类,包含管理配置文件的方法

if (isset($assign_to_config))
{
  $CFG->_assign_to_config($assign_to_config);

  //调用Config.php中_assign_to_config方法,保证配置项通过变量被分配 和 重写
}

 

$UNI =& load_class('Utf8', 'core');    //实例化Utf8类,对UTF-8环境提供支持

 

$URI =& load_class('URI', 'core');    //实例化URI类,解析URI 和 决定路由

 

$RTR =& load_class('Router', 'core'); //实例化Router路由类,解析URI 和 决定路由

$RTR->_set_routing();        //这个函数确定什么应该是基于URI请求,以及 路由配置文件中设置的路由

if (isset($routing))
{
  $RTR->_set_overrides($routing); //设置控制器覆盖
}

 

$OUT =& load_class('Output', 'core');  //实例化Output输出类,负责发送最终的输出到浏览器

if ($EXT->_call_hook('cache_override') === FALSE)
{
  if ($OUT->_display_cache($CFG, $URI) == TRUE)
  {
    exit;               //检测是否有缓存文件,如果有,直接退出当前脚本
  }
}

 

$SEC =& load_class('Security', 'core');  //实例化Security安全类

 

$IN =& load_class('Input', 'core');    //实例化Input输入类,为了安全对全局输入数据预处理  

 

$LANG =& load_class('Lang', 'core');   //实例化Lang语言类

 

require BASEPATH.'core/Controller.php';, //引入 基础控制器类

function &get_instance()
{
  return CI_Controller::get_instance(); //返回静态变量$instance
}

if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'))
{
  require APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php';

  //引入自定义扩展 基础控制器类
}

 

if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php'))
{
  show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.');
}

include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php');

//加载本地控制器

 

$BM->mark('loading_time:_base_classes_end');

//基准标记,加载的时间结束:$this->marker['loading_time:_base_classes_end'] = microtime();

 

安全检查

 

$EXT->_call_hook('pre_controller');  //调用"pre_controller" hook

 

$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start'); //基准标记,控制器执行时间标记点

$CI = new $class();  //实例化请求控制器

 

$EXT->_call_hook('post_controller_constructor'); //调用"post_controller_constructor" hook

 

调用请求的方法

 

$BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end'); //基准标记,控制器执行时间结束标记点

 

$EXT->_call_hook('post_controller');  //调用"post_controller" hook

 

if ($EXT->_call_hook('display_override') === FALSE)
{
  $OUT->_display();      //发送最后的渲染输出到浏览器
}

 

$EXT->_call_hook('post_system');  //调用"post_system" hook

 

if (class_exists('CI_DB') AND isset($CI->db))
{
  $CI->db->close();        //关闭数据库连接
}

-------------------------------------------------------------------------------------------------

codeigniter适合开发做大型的大访问量的项目?

Zend Framework要花很多时间,不适合快速学习,
现在国内外的框架程序非常的多,比如speedphp,qeephp,cakephp,TP等等
按照楼主的要求,那么就只有CI,个人觉得比较不错,
关于CodeIgniter
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。她提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用 CodeIgniter 可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。
CodeIgniter是由Ellislab公司的CEORickEllis开发的。其核心框架是为这个程序特别编写的,而其他很多类库、辅助函数和子系统则来自于RickEllis和PaulBurdick编写的内容管理系统ExpressionEngine。来自RubyonRails的灵感启发我们创造了一个PHP框架,并且将框架的概念引入到网络社区的一般意识中。
她是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,她可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个与人共享主机并且为客户要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果...
* 你想要一个小巧的框架。
* 你需要出色的性能。
* 你需要广泛兼容标准主机上的各种 PHP 版本和配置(例如 PHP4)。
* 你想要一个几乎只需 0 配置的框架。
* 你想要一个不需使用命令行的框架。
* 你想要一个不需坚守限制性编码规则的框架。
* 你对 PEAR 这种大规模集成类库不感兴趣。
* 你不希望被迫学习一门模板语言(虽然可以选择你要求的模板解析器)。
* 你不喜欢复杂,热爱简单。
* 你需要清晰、完整的文档。

最重要是CI的文档简单丰富易懂,哈哈
想学习,可以去CI中国去看看,就不用我给你贴地址了吧

 

codeigniter怎才可以使用

说实话,我不会在ubuntu下配置phpmyadmin, apache 等东西。
但是有个疑问,你是因为要用codeigniter而安装ubuntu虚拟机的吗?
如果是这样,其实可以直接在windows下直接运行。首先你必须要做的就是在本地安装一个服务器,因为php是服务器来编译。个人推荐xampp。安装以后确定全部正常运行,然后localhost查看状态。

好了现在说一说codeigniter。codeigniter 是 php 的 framework。 如果没有学过php,必须先把php的基础打好,再来学习这个。php有3种写代码的方式(可以这样理解吧,哈哈),正则,面向对象,还有MVC。 Codeigniter 是采用 mvc 的方法。 MVC 也就是 Model, view 和 controller。 Model 主要用于调用数据库里的data,而Controller就可以理解为model和view的中间人。它会从model取得值然后传给view。View就是用来显示的地方,语言例子:html,css,javascript。

要如何用codeigniter?
在安装xampp过后,进到安装后的文件夹找到htdocs,然后创建一个文件夹就行了。过后就这样把他丢进去。
(高亮的文件夹是本人自己创建的)

基本上就是这样。
其实现在最重要就是把基础打好吧。从问题里感觉的出你对这些东西完全不明白,所以有时候会很懒惰回答类似这样的问题。希望你可以找到解决方法。

CodeIgniter系统流程,codeigniter流程_PHP教程
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/850756.htmlTechArticleCodeIgniter系统流程,codeigniter流程 ------------------------------------------------------------------------------------------------------ 进入框架入口文件index.php...

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

65

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

43

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

35

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

41

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

204

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

9

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

8

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CodeIgniter3(CI3)基础教程(全)
CodeIgniter3(CI3)基础教程(全)

共37课时 | 4.6万人学习

Codeigniter 3 中文开发手册
Codeigniter 3 中文开发手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号