Carey【胭脂扣】

关于ThinkPHP的学习(持续更新记录.....)

1.学习php已有一段时间了。从刚开始直瞪眼,到现在每日每夜敲代码,不知不觉已经熟悉了起来,再接触过smarty模板引擎后,发现自己以前的一些混编简直我发直视,所以对我来说选着一个既简单实用,又无需花费大量时间学习的框架我锁定了ThinkPHP,原因很多,优势很大,因为是国产使用起来符合中国人的习惯和思维方式。更主要的是有强大海量的资料。遇到问题可以很快解决。

今天就来记录下我在学习当中的第一个困扰我的问题:

在调试模式下 页面无法显示SQL

网上搜索了一些无关紧要的东西,也没有找到合适的方法,在无意间发现问题的所在。

首先我无法显示SQL的主要配置是:

1  //入口文件index.php  ThinkPHP3.1.3   
2     //1.创建目录名称
3     define("APP_NAME","Home");
4     //2.创建目录路径
5     define("APP_PATH","./Home/");
6     //3.加载核心类
7     require("./ThinkPHP/ThinkPHP.php");
8     //开启调试模式
9     define('APP_DEBUG',true);

这样执行确实生成了我想要的站点目录Home 里面的目录结构也与手册上的一致,但在开发过程中发现在设置配置文件,开启页面trace

1 'SHOW_PAGE_TRACE'=>true,//开启页面Trac

无法显示SQL

后来才明白:原来这个与 入口配置文件中的引入核心类库文件代码行的位置有关系。而且影响很严重。

首先如果我讲require('./ThinkPHP/ThinkPHP.php');这行放在配置文件的第一行  那么出现的效果是 会在. 目录下直接生产目录结构,没有Home这个站点目录。

如果我将require('./ThinkPHP/ThinkPHP.php');文件放入在 define('APP_DEBUG',true);前面那么 DEBUG的加载就会出现问题,我想说到现在大家都应该明白了吧!

其实不难解释这个问题,首先来说下 include 与 require 两个的特点就可以知道,我们的习惯往往是将一些重要的文件用require 来加载 他的特点是只加载一次,如果加载失败会报一个

致命的错误。而include方法是有多少条include代码就会加载多少次,而且加载失败会不会影响程序向下执行,

所以define("APP_DEBUG",true);根本没有生效,所以 SQL也不会显示。 方法就是我们在配置 入口文件时要注意将require('./ThinkPHP/ThinkPHP.php');放在最后一行代码.

如下: SQL就可以正常显示在调试模式下了

1     //1.创建目录名称
2     define("APP_NAME","Home");
3     //2.创建目录路径
4     define("APP_PATH","./Home/");
5     //开启调试模式
6     define('APP_DEBUG',true);
7     //3.加载核心类
8     require("./ThinkPHP/ThinkPHP.php");

好!今天是2015年6月5日13:15:04 就到此。。。。。。。。

 

posted @ 2015-06-05 13:16  胭脂筘  阅读(158)  评论(0编辑  收藏  举报