## 嵌套调用
- 模块与模块之间的相互调用(相对路径)
- 项目和项目之间的相互调用(绝对路径)
- 也可以写一个通用模块就可以大面积使用,减少代码维护成本
- 或许可以实现一些神奇的效果
#### 示例代码
设置文件/html/www/demo/tpl/tpl.blade.php内容如下
```
<div>这是最顶端模块</div>
{!! tpl('a') !!}
{!! tpl('a/aa', ['get' => ['name' => 'GET参数来自顶部模块'], 'post' => ['name' => 'POST参数来自顶部模块']]) !!}
{!! tpl('c') !!}
{!! tpl('e') !!}
<div>#以下是全局调用示例</div>
<div>#这样就可以跨项目相互调用</div>
{!! tpl('/www/demo/tpl/c') !!}
```
设置文件/html/www/demo/tpl/tpl.css内容如下
```
_CLASS_{
width: 500px;
}
```
设置文件/html/www/demo/tpl/a/tpl.blade.php内容如下
```
<div>a模块</div>
{!! tpl('aa', ['get' => ['name' => 'GET参数来自a模块'], 'post' => ['name' => 'POST参数来自a模块']]) !!}
```
设置文件/html/www/demo/tpl/a/tpl.css内容如下
```
_CLASS_{
color:#F00;
}
```
设置文件/html/www/demo/tpl/a/aa/tpl.blade.php内容如下
```
<div>aa模块:{{$_GET['name']~~,{{$_POST['name']~~</div>
```
设置文件/html/www/demo/tpl/a/aa/tpl.css内容如下
```
_CLASS_{
background-color: #FEE;
}
```
设置文件/html/www/demo/tpl/c/tpl.blade.php内容如下
```
<div>c模块</div>
{!! tpl('../a/aa', ['get' => ['name' => 'GET参数来自c模块'], 'post' => ['name' => 'POST参数来自c模块']]) !!}
```
设置文件/html/www/demo/tpl/c/tpl.css内容如下
```
_CLASS_{
color:#08F;
}
```
设置文件/html/www/demo/tpl/e/tpl.blade.php内容如下
```
<div>e模块</div>
{!! tpl('ee', ['get' => ['name' => 'GET参数来自e模块'], 'post' => ['name' => 'POST参数来自e模块']]) !!}
```
设置文件/html/www/demo/tpl/e/tpl.css内容如下
```
_CLASS_{
color:#080;
}
```
设置文件/html/www/demo/tpl/e/ee/_init.php内容如下
```
<?php
return function (){
$get_name = $_GET['name'];
$post_name = $_POST['name'];
echo "<div>--- {$get_name} | {$post_name} ----</div>";
};
```
设置文件/html/www/demo/tpl/e/ee/tpl.blade.php内容如下
```
<div>ee模块</div>
```
设置文件/html/www/demo/tpl/e/ee/tpl.css内容如下
```
_CLASS_{
background-color: #CCF;
}
```
打开网址[http://demo.tphp.com/tpl](http://demo.tphp.com/tpl)获得如下效果
生成源代码

生成的CSS

生成的JS(未设置tpl.js,所以没有js代码)
这是总页面路径,当然所有的子页面同样可以单独访问,比如:
打开网址[http://demo.tphp.com/tpl/c](http://demo.tphp.com/tpl/c)获得如下效果

- 嵌套的页面有点多,页面嵌套、CSS嵌套放到一起就会有点绕,需耐心体会
- JS嵌套也是一样,这里就不举例了
- 虽然调用的有点多,但逻辑清晰,很容易控制模块与模块之间的关系,模块之间的class自动指向,无需记住样式名称,所以这里SCSS就发挥了极大的作用,只要写一次_CLASS_就能够实现自动指向,SCSS写法如下:
```
_CLASS_{
.child_1{
...
}
.child_2{
...
}
background-color: #CCF;
}
```
将转换为:
```
_CLASS_{
background-color: #CCF;
}
_CLASS_ .child_1{
...
}
_CLASS_ .child_2{
...
}
```
注: 最顶级模块必须配置 'tplDelete' => false 可看到效果