Thinkphp的系统配置和调试模式的开启
来源:互联网 发布:淘宝客托管 编辑:程序博客网 时间:2024/05/29 19:34
1.目录解析和系统配置
项目目录结构解析
以前文的项目构建为例,在网站根目录下的文件及目录为:
- ThinkPHP:ThinkPHP 框架包文件夹
- index.php:项目入口文件
- myweb:项目文件夹
- Public:公共目录,存放 css,javascript 等公共文件,手工创建
第一次运行项目入口文件时,系统会自动生成项目目录结构,在 myapp 下:
- Common:项目公共文件目录,一般放置项目的公共函数
- Conf:项目配置目录,配置文件放该目录下
- Lang:项目语言包目录(可选),作为多语言支持
- Lib:项目类库目录,通常包括 Action、Behavior、Model、Widget 子目录
- Tpl:项目模板目录,支持不同模板主题
- Runtime:项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录
return array(//'配置项'=>'配置值''APP_STATUS' => 'debug', //调试模式开启'SHOW_PAGE_TRACE' =>true, //调试模式时要设置'DB_TYPE' => 'mysql', // 数据库类型'DB_NAME' => 'test', // 数据库名'DB_USER' => 'root', // 用户名'DB_PWD' => '123', // 密码'DB_PORT' => '', // 端口'DB_PREFIX' => '', // 数据库表前缀'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8'DB_MASTER_NUM' => 1, // 读写分离后,主服务器数量);
'URL_CASE_INSENSITIVE' => false, // 默认false 表示URL区分大小写 true则表示不区分大小写'URL_MODEL' => 1, // URL访问模式,可选参数0、1、2、3,代表四种模式'URL_HTML_SUFFIX' => '', // URL伪静态后缀设置
进入 Myweb\\Lib\\Action 目录,里面有个 IndexAction.class.php 文件。该文件为刚才我们运行入口文件 index.php 时系统自动生成的。打开该文件,其内容大致如下(方法内具体代码省略):
<?php// 本类由系统自动生成,仅供测试用途class IndexAction extends Action{ public function index(){ 具体代码略…… }}?>
该文件已经演示了一个基于 ThinkPHP 的实际应用。
ThinkPHP 控制器
像上面这个 IndexAction.class.php 这样的特殊文件,称为控制器。该类文件通常位于 LibAction 下面,命名方式必须以“模块名+Action.class.php”样式来命名,如 IndexAction.class.php ,详细可参考《ThinkPHP 命名规范》一节。
ThinkPHP 模块
一个控制器对应一个模块。如 IndexAction.class.php 就对应 Index 模块,相应的类名为 IndexAction ,如上面的例子:
class IndexAction extends Action
ThinkPHP 操作
一个模块(类)里有多个方法,称之为“操作”。如上面例子的 index 方法:
public function index()
我们更改上面的 IndexAction.class.php 为:
<?phpclass IndexAction extends Action{ public function index(){ header("Content-Type:text/html; charset=utf-8"); echo "第一个例子测试!"; }}?>
再次访问网站首页(入口文件):
http://localhost/index.php
浏览器显示内容为在 index 操作中输出的:
第一个例子测试!
而不是原来的默认欢迎界面。
增加操作
要增加一个操作,只需在模块里增加一个定义为 public 方法即可。在 IndexAction.class.php 里面新增加一个 test 操作:
public function test(){ header("Content-Type:text/html; charset=utf-8"); echo "这是 test 操作";}
要访问该操作,浏览器地址为:
http://localhost/index.php/Index/test
浏览器输出如下:
这是 test 操作
可见要访问其他方法,需要在入口文件 URL 地址后面加上“模块/操作”才可以。关于通过入口文件 URL 地址访问模块方法的具体信息,请参看《ThinkPHP URL 访问模式》一节。
同模块调用其他操作
在同一个模块中,一个操作常常要调用其他操作(一般都是私有方法,通常都是独立的能被重复使用的功能模块),由于是在一个模块里(一个类里),因此使用 $this 可以很方便的调用其他操作:
<?phpclass IndexAction extends Action{ public function index(){ header("Content-Type:text/html; charset=utf-8"); echo "第一个例子测试!";$this->test(); }}?>
上面是将前面的 index 操作加上调用 test 操作的例子,运行 index 操作输出如下:
第一个例子测试!这是 test 操作
可见不仅 index 里面的 echo 语句执行了,test 操作里面的 echo 也执行了。这部分是属于 PHP 类与对象的知识,更多请参见PHP基础教程之《PHP 类与对象》一节的内容。
小结
- 控制器类文件名为 IndexAction.class.php 这种固定格式,对应 Index 模块,类名为 IndexAction
- 我们自定义的模块里面的类由 ThinkPHP的 基类 Action 继承而来,其遵循 PHP 的类继承属性
- 一个 Web 页面对应一个方法(反之则不一定),且该方法必须定义为 public 类型
- 一个控制器文件里面只能有一个模块可用,但模块(类)可以有多个方法,也可以没有方法
3如何开启DEBUG模式
刚刚入门的新手可能比较奇怪,明知道出错了,可是页面就是一片空白,什么都没显示,那么怎么开启debug模式呢?
首先在入口文件index.php中加入这句
//开启调试模式define('APP_DEBUG',true);然后Conf下的config.php也要修改一下
增加2行
'APP_STATUS' => 'debug', //调试模式开启'SHOW_PAGE_TRACE' =>true, //调试模式时要设置
由于这个错误信息依赖于模板文件输出,所以一定要display出来,就像下面的
public function index(){ $Dao = M('User'); $user_list = $Dao->select(); $this->display();}
开启成功后,页面的右下角会有一个div块,点击展开能看到各种信息,如吞吐量,错误信息,执行时间等等。
4.数据库配置与访问
首先要设置好config.php中的参数 (上面第一点的配置已经有涉及)
以下一个简单的例子,debug模式下,如果没有报错,证明数据库连接成功了
public function test(){ $Dao = M('user'); //实例化user模型类 $user_list = $Dao->select();echo "<pre>";print_r( $user_list);echo "</pre>"; $this->display(); }
- Thinkphp的系统配置和调试模式的开启
- thinkphp开启调试模式失败的原因
- 开启thinkphp的调试功能
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 解决ThinkPHP中开启调试模式无法加载模块的问题
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 在ThinkPHP中开启调试模式
- krpano的调试模式的开启和关闭
- ThinkPHP学习笔记(三):ThinkPHP框架的调试模式
- thinkphp开启开发者模式的好处 define('APP_DEBUG', true);
- apache开启vhost后,适应ThinkPHP的rewrite模式
- 如何开启Tornado的调试模式
- ThinkPHP开启调试
- thinkphp开启调试
- ThinkPHP-路由解析的实现和(开发调试模式的实现)
- thinkphp debug模式开启
- Thinkphp 调试->调试模式
- jqGrid重要摘要
- struts2 上传单个文件
- HashSet and TreeSet
- C++实现大数据的加法、减法和乘法
- 关于Eclispse连接Mysql的Jdbc
- Thinkphp的系统配置和调试模式的开启
- java生成随机数字验证码图片
- 黑马程序员——————————基础语法3之数组
- jQuery 全选与反选时出现的bug!
- 二叉搜索树
- JdbcUtils
- ZOJ-1797
- Linux 内核模块编程
- javascript函数库