### 使用原生PHP作為模板語言
>[info]推薦:[流程控制的替代語法](http://php.net/manual/zh/control-structures.alternative-syntax.php)
Smarty 的 if
~~~
{if $name == 'vip'}
<h1>你好Vip</h1>
{elseif $name == 'normal'}
<h1>你好普通用戶</h1>
{else}
<h1>你好游客</h1>
{/if}
~~~
PHP 的 if
~~~
<?php if ($name == 'vip'): ?>
<h1>你好Vip</h1>
<?php elseif ($name == 'normal'): ?>
<h1>你好普通用戶</h1>
<?php else: ?>
<h1>你好游客</h1>
<?php endif; ?>
~~~
PHP遍歷`$_SERVER`
~~~
<?php foreach ($_SERVER as $key => $value) : ?>
<?= $key ?> 的值為:<?=$value?><br>
<?php endforeach ?>
~~~
這兒的演示只是我個人的寫法,大家有別的方法可以隨意
我們可以在公共(模塊)控制器中定義一個存放模板目錄路徑的常量或是變量(也可以在配置文件里設置,通過`cofing()`函數調用),比如:
~~~
<?php
/**
* 前臺公共控制器,繼承控制器基類
*/
namespace app\home\controller;
class Common
{
//模板目錄
public $tpl_dir;
public function __construct()
{
$this->tpl_dir = APP_PATH . 'home/view/default/';
}
}
~~~
>[info]提示:在模板開發時需要指定模板位置時,需要靈活運用幾個內置的框架路徑常量與URL常量,具體請參考[內置常量](http://www.hmoore.net/yunfei_z/framework/201721)
接著在子控制器中繼承公共控制器,直接需要調用模板文件的地方include就行
~~~
<?php
/**
* 首頁控制器,繼承公共控制器類
*/
namespace app\home\controller;
class Index extends Common
{
public function index()
{
//定義一些常量
include $this->tpl_dir . 'index/index.php';
}
}
~~~