文档章节

ThinkPHP 模块与操作 系统配置

mickelfeng
 mickelfeng
发布于 2012/11/26 18:49
字数 1344
阅读 120
收藏 6

ThinkPHP 模块

进入 Myapp\Lib\Action 目录,里面有个 IndexAction.class.php 文件。该文件为刚才我们运行入口文件 index.php 时系统自动生成的。打开该文件,其内容大致如下(方法内具体代码省略):

<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action{ public function index(){ 具体代码略…… } } ?>

该文件已经演示了一个基于 ThinkPHP 的实际应用。

ThinkPHP 控制器

像上面这个 IndexAction.class.php 这样的特殊文件,称为控制器。该类文件通常位于 Lib\Action 下面,命名方式必须以“模块名+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 为:

<?php 
class IndexAction extends Action{ 
 public function index(){ 
 header("Content-Type:text/html; charset=utf-8"); 
 echo "第一个例子测试!"; 
 } 
} 
?>

再次访问网站首页(入口文件):

http://127.0.0.1/html/myapp/index.php

浏览器显示内容为在 index 操作中输出的:

第一个例子测试!

而不是原来的默认欢迎界面。

增加操作

要增加一个操作,只需在模块里增加一个定义为 public 的方法即可。在 IndexAction.class.php 里面新增加一个 test 操作:

public function test(){ header("Content-Type:text/html; charset=utf-8"); echo "这是 test 操作"; }

要访问该操作,浏览器地址为:

http://127.0.0.1/html/Myapp/index.php/Index/test

浏览器输出如下:

这是 test 操作

项目配置

打开项目配置目录 Conf ,里面有个 config.php 文件,该文件就是 ThinkPHP 系统配置文件。我们将一些项目配置信息如数据库账号密码等写入配置文件以供系统调用。
一个配置样例如下:
<?php 
if (!defined('THINK_PATH')) exit(); 
return array( //'配置项' => '配置值' 
'DB_TYPE' => 'mysql', //使用的数据库类型 
'DB_HOST' => 'localhost', 
'DB_NAME' => 'test', //数据库名 
'DB_USER' => 'root', //访问数据库账号 
'DB_PWD' => 'root123', //访问数据库密码 
'DB_PORT' => '3306', 
'DB_PREFIX' => 'dev_', //表前缀 
'APP_DEBUG' => true, //调试模式开关 
'TOKEN_ON' => true, //是否开启令牌验证 
'URL_MODEL' => 1, //URL模式:0普通模式 1PATHINFO 2REWRITE 3兼容模式 
); 
?>

配置信息补充说明

  1. 如果表没有前缀,则表前缀 DB_PREFIX 配置为空即可:

     

    'DB_PREFIX'=>'',
  2. APP_DEBUG 调试开关配置项中,配置为 true 表示开启调试开关,那么在有模板输出的页面中,可以看到系统运行信息。如下图:

    ThinkPHP调试信息

  3. TOKEN_ON 令牌验证配置为 true ,在表单提交时系统会自动生成一个 MD5 验证令牌用于防止非法表单提交。
  4. URL_MODEL URL访问模式,根据需要配置,如果环境不支持 PATHINFO 则设置为 3 以适应。
  5. APP_GROUP_LIST 及 DEFAULT_GROUP 用于项目分组,具体可参见《ThinkPHP 项目分组》。

提示

如果更改了配置选项,需要删除 Runtime 下面的缓存文件以使配置选项生效。

表前缀

数据表前缀往往用于区分同一个数据库内的不同系统的表。如安装了论坛,博客或者其他应用等不同的系统板块,则为了区分表所属系统,往往加上前缀以区分。

其他配置选项

下面列出了其他一些可能在项目中用得到的配置选项供参考:
'URL_PATHINFO_DEPR' => '/', //PATHINFO URL 模式下,各参数之间的分割符号 
'DEFAULT_THEME' => 'default', //默认模板主题 
'URL_HTML_SUFFIX' => '.html', //URL伪静态后缀设置 
'DEFAULT_CHARSET' => 'utf-8', // 默认输出编码 
'DEFAULT_TIMEZONE' => 'PRC', // 默认时区 
'DEFAULT_AJAX_RETURN' => 'JSON', // 默认AJAX 数据返回格式,可选JSON XML ... 
'APP_GROUP_LIST' => 'Home,Admin', //项目分组 
'DEFAULT_GROUP' => 'Home', //默认分组 
'COOKIE_EXPIRE' => 3600, // Coodie有效期 
'COOKIE_DOMAIN' => '', // Cookie有效域名 
'COOKIE_PATH' => '/', // Cookie路径 
'COOKIE_PREFIX' => '', // Cookie前缀 避免冲突 
'HTML_CACHE_ON' => false, //默认关闭静态缓存 
'HTML_CACHE_TIME' => 60, //静态缓存有效期 
'HTML_READ_TYPE' => 0, //静态缓存读取方式 0 readfile 1 redirect 
'HTML_FILE_SUFFIX' => '.shtml', //默认静态文件后缀 
'ERROR_MESSAGE' => '您浏览的页面暂时发生了错误!请稍后再试~',//错误显示信息,非调试模式有效 
'ERROR_PAGE' => '', // 错误定向页面

个性化配置

以上参数配置是基于 ThinkPHP 的系统配置参数,在项目建设过程中,有时候会有自己的个性化配置参数,个性化配置参数也可以写入配置文件里:
'SITE_TITLE' => '我爱开发网', //网站title
在操作里或者模板里,可以通过 ThinkPHP 提供的 C 方法方便的取出配置参数:
public function getConfig(){ header("Content-Type:text/html; charset=utf-8"); echo C('SITE_TITLE'); //输出:我爱开发网 }
ThinkPHP 为一些常用的操作定义了快捷方法,这些方法以单字母命名,如上面例子中取配置信息的 C 方法。

系统默认配置

我们在访问一个基于 ThinkPHP 的应用时, ThinkPHP 会首先加载系统默认配置选项。
系统默认配置文件为 ThinkPHP 核心包 ThinkPHP/Common 目录内的 convention.php 文件。加载了系统默认配置后再加载项目配置文件 Conf/config.php 里的配置以覆盖 convention.php 里面的配置。所以当需要修改项目的个性化配置时,修改项目目录内的配置文件 Conf/config.php 即可。

本文转载自:

mickelfeng

mickelfeng

粉丝 237
博文 2790
码字总数 604288
作品 0
成都
高级程序员
私信 提问
ThinkPHP 使用U方法自动生成URL超链接

ThinkPHP U方法 U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。 由于 ThinkPHP 支持各种不同的 URL 模式,另外还有项目分组模式,因此当部署...

沉恋
2012/11/22
486
0
ThinkPHP 框架培训资料

┎━ThinkPHP 框架系统目录 ┃ ┝ ThinkPHP.php 系统公共文件 ┃ ┝ Common 公共文件目录 ┃ ┝ Tpl 框架系统模版目录 ┃ ┝ Lang 系统语言包目录 ┃ ┝ PlugIns 公共插件目录 ┃ ┗ Lib 系统...

岭南六少
2012/02/16
533
0
thinkphp3.2版本url访问:总是走默认文件默认方法

这两天帮朋友改动thinkphp项目 刚开始配置项目,发现thinkphp总是走默认的模块默认的文件默认的方法,不管url怎么修改都不行,都是访问默认的,一开始我以为是代码写错了,跟了无数个断点后发...

小马_wolf
2017/05/27
71
0
ThinkPHP 3.2 版本升级了哪些内容

ThinkPHP 3.2 版本升级了哪些内容 ThinkPHP 3.2发布了挺长时间了,这里也总结下这次ThinkPHP 3.2到底发生了哪些变化,方便程序员们进行开发。 前言 ThinkPHP 3.2 基于 ThinkPHP 3.1 的基础上...

thinkyoung
2015/10/15
0
0
ThinkPHP 学习笔记 (一)

今天开始记录自己thinkphp的学习过程 首先学习是通过http://www.5idev.com/p-thinkphp_intro.shtml网站来学习的,这里的教程很清晰明了,所以我这里只是记录自己以后可能用到或者容易忘记的内...

bugyang
2013/02/18
419
0

没有更多内容

加载失败,请刷新页面

加载更多

shangcheng-my

1.数据库主键、外键类型为bigint,那么在后台应该用什么类型的变量定义? 后台用string接收,因为前段传过来的一般都是json字符串,后台直接接收,mysql是可以吧数字类型的字符串转换为对应的...

榴莲黑芝麻糊
昨天
1
0
微服务架构依赖图

基于spring-cloud-alibaba + dubbo

龙影
昨天
3
0
Centos7 安装zabbix-agent

rpm -i https://repo.zabbix.com/zabbix/4.2/rhel/6/x86_64/zabbix-release-4.2-2.el6.noarch.rpm 可以到https://repo.zabbix.com/zabbix找到对应的版本 yum install zabbix-agent -y 出现E......

abowu
昨天
8
0
文本编辑器GNU nano 4.4 发布

GNU nano 4.4 "Hagelslag" 更新日志: 启动时,光标可以放在第一个或最后一个出现位置 字符串前面带有+/string 或 +?string的字符串。 发生自动硬包装时((--breaklonglines),任何前导引号...

linuxCool
昨天
7
0
你知道字节序吗

字节序 最近在调一个自定义报文的接口时,本来以为挺简单的,发现踩了好几个坑,其中一个比较“刻骨铭心”的问题就是数据的字节序问题。 背景 自定义报文,调用接口,服务端报文解析失败 iO...

杭城小刘
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部