亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

論PHP模板的簡單高效實現

發布時間:2020-07-02 16:04:05 來源:網絡 閱讀:1001 作者:我是小谷粒 欄目:開發技術

大家都知道PHP是世界上最好的語言,PHP在項目開發中的靈活性是個非常重要的優點,非常適合經常變動的業務邏輯和頁面內容,當然都離不開一個好用的模板引擎,市面上最常見的PHP模板引擎是smarty,但是smarty功能十分豐富,有些重量級了.
那有沒有更好的模板引擎呢? 先來探討一下模板引擎的幾大特點: 書寫簡單,執行速度,邏輯表達,方便擴展等.從這幾方面看最適合的模板引擎就是PHP本身了,所有的要求都能滿足要求,不管是smarty還是其他的模板引擎,在執行速度,邏輯表達,方便擴展的方面都不可能超過PHP本身,因為他們都是PHP實現的.唯一的短板就是書寫簡單這一方面.
那我們怎么補齊這塊短板呢? 其實完全可以自己實現一個模板引擎語法規則,然后配合上一個預編譯過程即可,把自定義個的模板引擎語法,編譯成原生PHP代碼即可,既補足了書寫簡單的短板,也沒有對執行速度,邏輯表達,方便擴展等方面有任何損失.并且編譯只需一次,編譯一次以后模板頁面沒有變動,再也不需要第二次處理,配合OPCODE緩存更加強大,更能享受到PHP版本升級帶來的性能紅利.
那怎么來實現呢? 在PHP頁面中使用的最多的就是<?php echo $row["title"]; ?>來輸出一個變量內容,寫起來鍵盤敲擊次數還是比較多的.完全可以實用模板語法{{$row.title}}代替,從原來的28個字符減少到了14個字符,包括if else foreach include等模板語法,只需要一個正則替換,即可實現一個簡單高效的模板引擎.
模板頁面
<table>
{{foreach $rows as $i => $row}}
<tr><td>{{$row["username"]}}</td><td>{{$row["password"]}}</td></tr>
{{endforeach}}
</table>
PHP頁面
<table>
<?php foreach ($rows as $i => $row) { ?>
<tr><td><?php echo $row["username"]; ?></td><td><?php echo $row["password"]; ?></td></tr>
<?php } ?>
</table>
核心代碼示意
// 此代碼已被精簡
$tmpl = preg_replace('/{{if (.+?)}}/', '<?php if ($1) { ?>', $tmpl);
$tmpl = preg_replace('/{{else}}/', '<?php } else { ?>', $tmpl);
$tmpl = preg_replace('/{{elseif (.+?)}}/', '<?php } elseif ($1) { ?>', $tmpl);
$tmpl = preg_replace('/{{endif}}/', '<?php } ?>', $tmpl);
$tmpl = preg_replace('/{{foreach (.+?)}}/', '<?php foreach ($1) { ?>', $tmpl);
$tmpl = preg_replace('/{{endforeach}}/', '<?php } ?>', $tmpl);
$tmpl = preg_replace('/{{include (.+?)}}/', '<?php include $1.php; ?>', $tmpl);
$tmpl = preg_replace('/{{(.+?)}}/', '<?php echo $1; ?>', $tmpl);
好了,完美解決模板引擎的簡單高效需求,還有什么自己的想法都可以添加進來哦!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新和县| 武穴市| 太和县| 浦江县| 荣成市| 晋江市| 广南县| 临城县| 和林格尔县| 新密市| 古蔺县| 平阳县| 晋江市| 乡城县| 青海省| 洪江市| 宁河县| 黔南| 舒城县| 临武县| 两当县| 连南| 高雄市| 库伦旗| 昌平区| 高清| 勃利县| 平泉县| 乐亭县| 疏附县| 民勤县| 武隆县| 尼勒克县| 习水县| 建始县| 芦溪县| 明水县| 壤塘县| 林西县| 宣汉县| 卓资县|