> 如果系统自带的解析规则不能满足需求, 可以使用 Angular::extend()方法进行扩展, 此方法有两个参数, 详细请看下面实例.
## 入口文件: /test/index.php
```
<?php
use think\angular\Angular;
require '../src/Angular.php';
// 自定义扩展, 打印变量的值
Angular::extend('dump', function ($content, $param, $angular) {
$old = $param['html'];
$new = '<pre>';
unset($param[0], $param[1], $param[2], $param[3], $param[4], $param[5]);
$new .= '<?php var_dump(' . $param['value'] . '); ?>';
$new .= '<pre>';
return str_replace($old, $new, $content);
});
// 自定义扩展, 变量+1
Angular::extend('inc', function ($content, $param, $angular) {
$old = $param['html'];
$new = '<?php ' . $param['value'] . '++; ?>';
$new .= Angular::removeExp($old, $param['exp']);
return str_replace($old, $new, $content);
});
// 自定义扩展, 变量-1
Angular::extend('dec', function ($content, $param, $angular) {
$old = $param['html'];
$new = '<?php ' . $param['value'] . '--; ?>';
$new .= Angular::removeExp($old, $param['exp']);
return str_replace($old, $new, $content);
});
/ 配置
$config = [
'debug' => true, // 是否开启调试, 开启调试会实时生成缓存
'tpl_path' => './view/', // 模板根目录
'tpl_suffix' => '.html', // 模板后缀
'tpl_cache_path' => './cache/', // 模板缓存目录
'tpl_cache_suffix' => '.php', // 模板缓存后缀
'directive_prefix' => 'php-', // 指令前缀
'directive_max' => 10000, // 指令的最大解析次数
];
// 实例化
$view = new Angular($config);
// 输出解析结果
$view->display('index');
```
## 模板文件: /text/view/index.html
```
<!DOCTYPE html>
<html>
<head>
<title>diy test</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div php-dump="$navs"></div>
<div php-init="$i = 0" php-inc="$i" php-inc="$i">{$i}</div>
<div php-dec="$i">{$i}</div>
</body>
</html>
```
## 解析后
```
<!DOCTYPE html>
<html>
<head>
<title>diy test</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<pre><?php var_dump($navs); ?><pre>
<?php $i = 0; $i++; $i++; ?>
<div><?php echo $i; ?></div>
<?php $i--; ?>
<div><?php echo $i; ?></div>
</body>
</html>
```