magento / dom

PHP 7项目的现代DOM API。

维护者

详细信息

github.com/magento/Dom

源代码


README

The modern DOM API for PHP 7 projects

现代DOM API。

基于PHP的本地DOMDocument构建,该项目提供了访问现代DOM API的权限,就像您在浏览器中处理客户端代码一样。

在您的服务器端代码中执行DOM操作可以增强动态页面构建的方式。使用标准化的面向对象接口意味着页面可以进行预处理,从而有利于浏览器、Web服务器和内容分发网络。

Build status Code quality Code coverage Current version PHP.Gt/Dom documentation

示例用法:你好,你!

重要提示:此处展示的示例仅用于说明,但使用DOM直接将数据设置为元素的值会将逻辑与视图紧密耦合,这被视为不良做法。请参阅DomTemplate库以获取将数据绑定到DOM的更稳健的解决方案。

考虑一个包含表单的页面,其中有一个输入元素用于输入您的姓名。当表单提交时,页面应该通过您的姓名向您打招呼。

这是一个如何将源HTML文件视为模板的简单示例。这可以轻松地应用于更高级的模板页面,以提供动态内容,而不需要使用非标准技术,例如用于占位符的{{花括号}},或从PHP内部进行的echo '<div class='easy-mistake'>' . $content['opa'] . '</div>'糟糕的HTML构建。

源HTML(name.html

<!doctype html>
<h1>
	Hello, <span class="name-output">you</span> !
</h1>

<form>
	<input name="name" placeholder="Your name, please" required />
	<button>Submit</button>
</form>

PHP用于注入您的姓名(index.php

<?php
require "vendor/autoload.php";

$html = file_get_contents("name.html");
$document = new \Gt\Dom\HTMLDocument($html);

if(isset($_GET["name"])) {
	$document->querySelector(".name-output")->innerText = $_GET["name"];
}

echo $document->saveHTML();

功能一览

页面模板功能

此仓库旨在尽可能准确地符合DOM规范。在 https://php.gt/domtemplate 提供了仓库的扩展,通过自定义元素和模板属性添加页面模板,引入了类似于WebComponents的服务端功能。