1. 確保不修改discuz代碼;php
2. 繼承discuz template類,重載parse_template 方法;因爲discuz在模版引擎這一塊沒有考慮擴展性,對標籤的解析所有寫在一個方法中,所以只能重複大量代碼進行重載;其中調用到的createurl方法放在idx.php 入口文件中,其實這裏也能夠直接調用原始的靜態方法 - Mvc_Router::creatUrl();linux
https://gitcafe.com/web3d/uxf/blob/master/upload/source/class/mvc/mvc_template.phpgit
<p>msg:{$msg}</p> <p>Welcome,Phper.</p> <a href="{url:'/senery-ticket/list'}">門票</a> <a href="{url:'/senery-ticket/order/id/' . $ticket_id}">訂購門票</a>
3. 不覆蓋discuz的結果,就是這些擴展的東西只能在uxf體系裏使用web
統一路由構造與解析 說明api
好比模版中統一的url寫法mvc
{url:'/api-main/list/type/linux/order/1/name/'.$val.name}
參數說明:url
在普通url模式下,上述寫法將會生成spa
idx.php?module=api&mod=main&action=list&type=linux&order=1&name=Ubuntu
這樣的完整的url。3d
在pathinfo的模式下,將會生成code
/api-main/list/type/linux/order/1/name/Ubuntu
在Diy的模式下,將根據本身定義的方式生成,如
/api/linux/Ubuntu