热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Yii(yiiframework)框架(四):入口文件index.php

再回到index.php,执行前端控制器中的run()。首先执行onBeginReques事件如果有的话,接下来处理请求过程,和其他框架一样,获取路由然后分发路由,通过controller和action映射到指定的控制器文件

Yii入口文件:


run();

1、$yii=dirname(__FILE__).'/../yii/framework/yii.php'; 包含yii框架的引导文件yii.php,其实就是加载yii基础类YiiBase

2、$cOnfig=dirname(__FILE__).'/protected/config/main.php'; 定义运用的配置文件

3、defined('YII_DEBUG') or define('YII_DEBUG',true); 定义是否开启“调试模式”,默认为开启,建议在生产模式下关闭

4、defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); 定义日志记录的级别。

Yii 提供了一个灵活可扩展的日志功能。记录的日志可以通过日志级别和信息分类进行归类。通过使用级别和分类过滤器,所选的信息还可以进一步路由到不同的目的地,例如一个文件,Email,浏览器窗口等。

在Yii 中有下列几种日志路由可用:
CDbLogRoute: 将信息保存到数据库的表中。 
CEmailLogRoute: 发送信息到指定的 Email 地址。 
CFileLogRoute: 保存信息到应用程序 runtime 目录中的一个文件中。 
CWebLogRoute: 将 信息 显示在当前页面的底部。 
CProfileLogRoute: 在页面的底部显示概述(profiling)信息。

同时我们也可以在应用的配置文件main.php中对日志记录功能进行设置:



'log'=>array(
	'class'=>'CLogRouter',
	'routes'=>array(
		array(
			'class'=>'CFileLogRoute',
			'levels'=>'error, warning',
		),
		// uncomment the following to show log messages on web pages
		/*
		array(
			'class'=>'CWebLogRoute',
		),
		*/
	),
),

5、Yii::createWebApplication($config)->run(); 创建CWebApplication类,CWebApplication是一个前端控制器,管理MVC中的控制器,提供核心组件。实例化是通过父类CApplication的构造函数进行路径别名映射,预初始化,初始化错误和异常handler,注册框架核心组件(CApplication中的coreMessages、db、message、errorHandler、securityManager、statePersister、urlManager、request、format和CWebApplication中的session、assetManager、user、themeManager、authManager、clientScript、widgetFactory),配置文件的配置数组,添加行为(attachBehaviors),初始化预加载的组件(配置文件中配置),最后执行init()预加载CHttpRequest对象。

再回到index.php,执行前端控制器中的run()。首先执行onBeginReques事件如果有的话,接下来处理请求过程,和其他框架一样,获取路由然后分发路由,通过controller和action映射到指定的控制器文件。

这里我们通过一张图来了解YII框架的工作流程:
yii框架工作流程
推荐阅读
author-avatar
sysv
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有