一 视图
1 视图渲染
渲染模板输出最常用的是使用display方法,调用格式:
display('[模板文件]'[,'字符编码'][,'输出类型'])模板文件的写法支持下面几种:
用法 描述
不带任何参数 自动定位当前操作的模板文件
[模块@][控制器:][操作] 常用写法,支持跨模块 模板主题可以和theme方法配合
完整的模板文件名 直接使用完整的模板文件名(包括模板后缀)、
下面是一个最典型的用法,不带任何参数:
// 1. 不带任何参数 自动定位当前操作的模板文件
$this->display();
//2 .带参数
$this->display('goods2');
//3. 指定其他控制器下的模板 控制器:操作
$this->display('Index:add');
//4. 指定其他模块的模板 [模块@][控制器:][操作]
$this->display('Admin@index:add');
//5 . 完整模板名称 要注意模板文件位置是相对于项目的入口文件,而不是模板目录。
$this->display('./add.html');
2 display和fetch 方法的区别
display: 获取具体的模板内容并且自动输出
fetch: 获取模板内容,但是不会自动输出
如果要用到fetch输出模板,先用fetch,后用show
$this->show($this->fetch('goods'));
3 模板替换
1)创建方法渲染模板
<link rel="stylesheet" type="text/css" href="/Public/css.css"/>
public 前面的/理解为根目录
2. 替换规则
在进行模板渲染之前,系统还会对读取的模板内容进行一些特殊字符串替换操作,也就是实现了模板输出
的替换和过滤。该替换操作仅针对内置的模版引擎。
这个机制可以使得模板文件的定义更加方便,默认的替换规则有:
__ROOT__: 会替换成当前网站的地址(不含域名)
__APP__: 会替换成当前应用的URL地址 (不含域名)
__MODULE__:会替换成当前模块的URL地址 (不含域名)
__CONTROLLER__(__或者__URL__ 兼容考虑): 会替换成当前控制器的URL地址(不含域名)
__ACTION__:会替换成当前操作的URL地址 (不含域名)
__SELF__: 会替换成当前的页面URL
__PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public
注意这些特殊的字符串是严格区别大小写的,并且这些特殊字符串的替换规则是可以更改或者增加的,我
们只需要在应用或者模块的配置文件中配置TMPL_PARSE_STRING就可以完成。如果有相同的数组索引,
就会更改系统的默认规则。例如:
'TMPL_PARSE_STRING' =>array(
'__PUBLIC__' => '/Common', // 更改默认的/Public 替换规则
'__JS__' => '/Public/JS/', // 增加新的JS类库路径替换规则
'__UPLOAD__' => '/Uploads', // 增加新的上传路径替换规则
)
二 模板的赋值与显示
1 方法
2 模板
3 配置
三 系统变量
普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系
统变量的输出通常以{$Think 打头,例如:
{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
{$Think.session.user_id} // 输出$_SESSION['user_id']变量
{$Think.get.pageNumber} // 输出$_GET['pageNumber']变量
{$Think.cookie.name} // 输出$_COOKIE['name']变量
支持输出 $_SERVER 、 $_ENV 、 $_POST 、 $_GET 、 $_REQUEST 、 $_SESSION 和
$_COOKIE 变量。
常量输出
还可以输出常量
{$Think.const.MODULE_NAME}
或者直接使用
{$Think.MODULE_NAME}
{$Think.PHP_VERSION} 显示php版本
PHP 全局变量 - 超全局变量
这些超全局变量是:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
$GLOBALS — 引用全局作用域中可用的全部变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
配置输出
输出配置参数使用:
{$Think.config.db_charset}
{$Think.config.url_model}
语言变量
输出语言变量可以使用:
{$Think.lang.page_error}
{$Think.lang.var_error}