用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文件,是介绍他的用法

相关文章
相关标签/搜索