用php生成HTML文件的類

目的

用PHP生成HTML文檔, 支持標籤嵌套縮進, 支持標籤自定義屬性php

原由

這個東西確實也是心血來潮寫的, 原本打算是輸出HTML片斷用的, 但後來就乾脆寫成了一個能夠輸出完整HTML的功能;
我很滿意裏邊的實現縮進的機制, 你們有用到的能夠看看
p.s. 如今都是真正的先後端分離了(vue, nodejs, webpack...), 這個東西喜歡就用, 不喜歡就算了~html

支持的標籤

html, head, meta, title, body, input, select/option, form, table, div, 註釋, 以及 自定義標籤(成對出現的標籤), 還有一大堆屬性(在下邊有介紹)vue

實現

總體

  1. 每一個標籤都對應一個類, 好比 標籤<html>, 對應了一個叫html的類
  2. 標籤中有用到的屬性, 我都放到了一個類中了, 並提供了方法去獲取賦了值的屬性

嵌套縮進

每一個標籤我都設計了一個類, 好比 table 標籤, 就有一個叫table的類與之對應node

每一個類裏邊通常都有如下3個重要成員:webpack

  1. 本標籤的縮進值
  2. 輸出本標籤最終字符串的方法, out()
  3. 給本標籤添加子標籤的方發, append()

其中append()接收的是子標籤的對象, 在最終調用$html->out()的時候, 每一個子標籤對象裏的out()方法會被依次調用, 縮進值也會從上層類傳遞到最下層類並累加;git

另外, 每一個類都包含了屬性類(calss attribute ), 每一個類的縮進值是從屬性類裏繼承而來的, 因此若是修改了屬性類裏的縮進量, 全部類的縮進量就跟着改變了web

你也能夠給標籤類添加一個本身的縮進值來覆蓋統一的縮進值後端

屬性

我這裏的方案是定義一個類(calss attribute ), 裏邊有app

  1. 標籤可能擁有的屬性
  2. 對應的setXxx方法
  3. 組裝非空的屬性拼成字符串的方法
  4. 爲了避免影響下次顯示, 會有專門的清空方法, 把以前賦值的屬性都清空

這樣的話, 在定義標籤屬性的時候, 須要的就賦上值, 不須要的不賦值就不會在最終的HTML代碼中顯示出來前後端分離

源碼

地址: 碼雲 看其中的test.php文件,是介紹他的用法

相關文章
相關標籤/搜索