成员变量/常量
在使用 Sdopx 模板引擎开发中,我们需要了解的一些系统变量设置等等。
常量表:
常量名称 | 类型 | 可设置 | 默认值 | 说明 |
---|---|---|---|---|
define SDOPX_DIR
|
string | No | sdopxs所在目录 | 模板引擎安装的所在目录 |
Sdopx::VERSION | string | No | 版本号 | 模板引擎的版本号 |
Sdopx::PARSING_HTML | int | No | 1 | 模板解析类型,该值为解析html模板 |
Sdopx::PARSING_SQL | int | No | 2 | 模板解析类型,该值为解析sql模板 |
静态成员变量:
变量名称 | 类型 | 可设置 | 默认值 | 说明 |
---|---|---|---|---|
debug | boolean | Yes | false | 是否开启调试模式,开启后编译调试信息,方便呈现错误报告,上线需要关闭。 |
extension |
string | Yes | '' | 设置默认模板后缀,前面不带. 设置以后,模板中不使用后缀名称 |
defaultTemplateDirs |
string|array | Yes | ./view | 默认的模板目录,如果实例未设置模板目录,则使用该模板目录 |
defaultCompileDir |
string | Yes | ./runtime | 默认编译目录,如果实例未设置编译路径,则使用该目录 |
实例成员变量:
变量名称 | 类型 | 可设置 | 默认值 | 说明 |
---|---|---|---|---|
leftDelimiter
|
string | Yes | { | 仅单例更改,Sdopx语法左定界符 |
rightDelimiter
|
string | Yes | } | 仅单例更改,Sdopx语法右定界符 |
compileForce
|
bool | Yes | false | 仅单例更改,强制每次都重新编译,开启此选项性能会下降,正式上线请关闭此项 |
compileCheck
|
bool | Yes | true | 仅单例更改,检查文件修改重新编译,正式上线可关闭此项,提高运行效率 |
_book
|
any | Yes | [] | 存储变量的对象,可直接赋值,但不建议 |
在php-fpm 下使用:
define('ROOT_DIR', __DIR__);
date_default_timezone_set('PRC');
require(ROOT_DIR . '/vendor/autoload.php');
use sdopx\Sdopx;
Sdopx::$debug = true;
$sdopx = new Sdopx();
$sdopx->setTemplateDir('./view');
$sdopx->setCompileDir('./runtime');
//强制每次都编译,这样会严重降低性能,除非调试需要,不建议开启
$sdopx->compileForce = true;
$sdopx->assign('title', 'hello sdopx');
$sdopx->display('index.tpl');
在swoole 下使用:
<?php
require 'vendor/autoload.php';
use sdopx\Sdopx;
//开启调试信息
Sdopx::$debug = true;
$http = new \swoole_http_server("127.0.0.1", 9503);
$http->on('request', function ($request, $response) {
//使用 $response 作为上下文传递给Sdopx ,当调用 display 的时候会执行 $response->end() 函数输出
$tpl = new Sdopx($response);
$tpl->setTemplateDir('./view');
$tpl->setCompileDir('./runtime');
//关闭检查编译,可以提高效率但是同时不再检查模板修改也不再编译
$tpl->compileCheck = false;
$tpl->assign('name', 'wj008');
$tpl->display('index.tpl');
//如果不传递上下文$response,或者上下文 end 方法不存在,可以使用 $code=$sdopx->fetch('index.tpl'); 返回模板内容,并自由输出
});
$http->start();
使用固定的后缀:
define('ROOT_DIR', __DIR__);
date_default_timezone_set('PRC');
require(ROOT_DIR . '/vendor/autoload.php');
use sdopx\Sdopx;
Sdopx::$extension = 'tpl';
Sdopx::$defaultTemplateDirs='./view';
//如果有多个 Sdopx::$defaultTemplateDirs=['./view','./template'];
Sdopx::$defaultCompileDir='./runtime';
$sdopx = new Sdopx();
$sdopx->assign('title', 'hello sdopx');
$sdopx->display('index');
当使用固定后缀,模板中 extends 和 include 中同样不带后缀。