Yii模块+Log4PHP

一、概述

    对于一个较大的基于Yii的项目来说,如果所有的controllers都放在controllers文件夹下,所有的model都放在models文件夹下,那么controllers文件夹和models文件夹将变的非常复杂,所以Yii支持modules结构,可以把项目分为多个module,每个module有自己的controllers和models。这样,项目的机构就很清晰简单了。对于log4php来说,如果所有人都往一个日志文件里面写内容,开发期间调试将会非常痛苦,所以这里采用统一的日志配置文件,每个人获取自己的独立的日志句柄写日志,原则上一个模块一个日志句柄。

二、新建Yii工程

2.1、准备工作

      在apache或者nginx或者其他的web目录下新建工程目录文件夹,这里工程文件夹名为:YiiLog4PHPDemo,将Yii的框架复制到该目录下。这样讲Yii包含进项目里,方便使用。

2.2、新建phpeclipse工程

      在phpeclipse里面新建php工程,工程名为YiiLog4PHPDemo,要和刚才新建的文件夹一样,工程存放路径为YiiLog4PHPDemo的路径,如图:

      Yii模块+Log4PHP_第1张图片 点击Finish完成工程创建。

2.3、新建Yii工程的目录结构

      进入YiiLog4PHPDemo下的yii框架目录,执行yiic webapp D:/phpworkspace/YiiLog4PHPDemo创建Yii的目录结构,注意,根据实际路径自己修改,当询问yes或者no的时候,选择yes继续,如图:

Yii模块+Log4PHP_第2张图片 回到eclipse中刷新工程。在项目上点击右键选择Include Path->Configure Include Path,选择Add External Source Folder将yii框架包含进来,如图:

Yii模块+Log4PHP_第3张图片2.4、修改配置

      修改数据库配置

            修改protected/config/main.php。注释掉sqlite一行,打开mysql配置。如图:

Yii模块+Log4PHP_第4张图片      打开modules中的gii并设置密码如图:

Yii模块+Log4PHP_第5张图片 

2.5、创建模块,这里以fileManager模块为例

      访问http://127.0.0.1/YiiLog4PHPDemo/index.php?r=gii,进入页面输入密码,选择Module Gennerator。输入Module Id:fileManager,点击Preview可以预览,如图:

Yii模块+Log4PHP_第6张图片 点击Generate生成模块,回到eclipse中刷新工程。新建好模块后,需要在main.php里面配置下,默认的,访问的是模块中的DefaultController,可以在配置的时候指定默认的controller,这里,我们让默认执行模块里面的FileController,配置如图:

Yii模块+Log4PHP_第7张图片

2.6、引入log4php

      在项目的extensions目录下新建log4php文件夹,在apache官网下载log4php,解压后,将main/src/php文件夹下的所有文件复制到项目的extensions/log4php文件夹下。在main.php里面将log4php的文件import进来。如图:

Yii模块+Log4PHP_第8张图片 在项目目录下新建configuration/log4php文件夹存放log4php的配置文件。新建log4php的配置文件,文件名为yiilog4phpdemo.xml,内容为:

yiilog4phpdemo.xml

 

在入口文件index.php里面包含进Logger.php并读取配置文件:

index.php

2.7、开始写代码

      在filemanager模块下,在models文件夹下新建file.php文件,内容为:

file.php

      在fileManager模块下,在controllers文件夹下新建FileController.php文件,内容为:

FileController.php

在filemanager模块下,在views文件夹下新建文件夹file,在file下新建文件main.php,内容为:

main.php

 

2.8、运行

      用浏览器访问http://127.0.0.1/YiiLog4PHPDemo/index.php?r=fileManager,结果如图:

10 日志文件内容为:

12 运行过程:

根据路由r=fileManager,找到fileManager模块,模块中定义了默认的controller为file,运行到FileController,FileController中定义了默认的action为main,则运行的actionMain方法,在该方法中,用查询到的数据渲染了main视图文件,即views下的file下的main

文件,在该文件里将数据输出出来。在actionMain方法里,获取了两个不同的日志句柄写了日志。

访问:http://127.0.0.1/YiiLog4PHPDemo/index.php?r=fileManager/file/main

http://127.0.0.1/YiiLog4PHPDemo/index.php?r=fileManager/file或者http://127.0.0.1/YiiLog4PHPDemo/index.php?r=fileManager是一致的。


 


 

你可能感兴趣的:(PHP)