magento / dom
PHP 7项目的现代DOM API。
v2.1.7
2020-02-24 20:00 UTC
Requires
- php: >=7.1
- ext-dom: *
- ext-libxml: *
- ext-mbstring: *
- magento/cssxpath: *
- psr/http-message: 1.*
Requires (Dev)
- phpunit/phpunit: 7.*
Conflicts
- phpgt/dom: *
- dev-master
- 224.x-dev
- v2.1.7.x-dev
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.4.0
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.3
- v0.0.2
- v0.0.1
- dev-240-innerhtml
- dev-dependabot/composer/phpunit/phpunit-8.5.2
- dev-github-actions
- dev-property-attribute
- dev-trait-constant
- dev-update-deps
- dev-circleci
- dev-protected-live-property
- dev-get-set-value
- dev-214-format-output
- dev-58-streaminterface
- dev-efficiency
This package is auto-updated.
Last update: 2024-08-25 06:20:45 UTC
README
现代DOM API。
基于PHP的本地DOMDocument构建,该项目提供了访问现代DOM API的权限,就像您在浏览器中处理客户端代码一样。
在您的服务器端代码中执行DOM操作可以增强动态页面构建的方式。使用标准化的面向对象接口意味着页面可以进行预处理,从而有利于浏览器、Web服务器和内容分发网络。
示例用法:你好,你!
重要提示:此处展示的示例仅用于说明,但使用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级别4类
- 根据W3C标准化的特性以添加功能
- 通过
querySelector
(All
)使用CSS选择器引用引用元素 - 使用
ClassList
添加/删除/切换元素的类 - 使用W3C属性遍历文档内的
Element
节点 Element::remove()
将其从文档中分离- 使用
Element::before()
和Element::after()
在另一个元素周围添加元素 - 使用
Element::replaceWith()
就地替换元素 HTMLDocument
上的标准集合属性
页面模板功能
此仓库旨在尽可能准确地符合DOM规范。在 https://php.gt/domtemplate 提供了仓库的扩展,通过自定义元素和模板属性添加页面模板,引入了类似于WebComponents的服务端功能。