ThinkPHP 模块与操作 系统配置

落花浮王杯 提交于 2019-11-28 13:47:44

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 表示开启调试开关,那么在有模板输出的页面中,可以看到系统运行信息。如下图:

  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 即可。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!