theseer / fdomdocument
此包已 废弃 并不再维护。未建议任何替代包。
此存储库中包含的类扩展了标准DOM,在所有错误情况下使用异常而不是PHP警告或通知。它们还添加了各种自定义方法和快捷方式,以提高便利性和简化DOM的使用。
1.6.7
2022-01-25 23:10 UTC
Requires
- php: >=5.3.3
- ext-dom: *
- lib-libxml: *
Requires (Dev)
- php: >=7.3
README
⚠️ 此项目已存档 将不会有新的功能或一般性错误修复。如果您发现安全漏洞,请与我联系,我将考虑创建一个额外的版本来解决它。否则,没有计划更新。当前(可能是最终)版本
1.6.7
应在 PHP 5.3.3 - PHP 8.1 下运行。
此存储库中包含的类扩展了标准DOM,在所有错误情况下使用异常而不是PHP警告或通知。它们还添加了各种自定义方法和快捷方式,以提高便利性和简化DOM的使用。
要求
PHP: 5.3.3 (5.3.0-5.3.2 had serious issues with spl stacked autoloaders)
Extensions: dom, libxml
Aus of 1.6.7, tests will require PHPUnit 8.5 and PHP 7.3+
安装
除了克隆此存储库之外,fDOMDocument还可以使用以下任何一种方法安装。
Composer
由于fDOMDocument是一个库,不提供任何命令行工具,因此您只能将其添加到自己的项目中
{
"require": {
"theseer/fdomdocument": "^1.6"
}
}
YUM/DNF (Fedora / Redhat / CentOS)
以下命令将使用其RPM包安装fDOMDocument
sudo yum install php-theseer-fDOMDocument
使用
fDOMDocument被设计为DOMDocument的替换品。您可以使用Composer生成的自动加载器或提供的自动加载器。
使用示例
<?php
require '/path/to/autoload.php';
$dom = new TheSeer\fDOM\fDOMDocument();
try {
$dom->loadXML('<?xml version="1.0" ?><root><child name="foo" /></root>');
} catch (fDOMException $e) {
die($e);
}
$child = $dom->queryOne('//child');
print_r($child->getAttribute('name'));
print_r($child->getAttribute('missing','DefaultValue'));
?>
变更日志
版本 1.6.7
- 添加
#[\ReturnTypeWillChange]
属性以关闭PHP 8.1返回类型的通知 - 修复了传递
NULL
而期望int
的弃用通知
版本 1.6.6
- 合并PRs 33+34:为fDOMElement::appendElement()添加“asTextNode”参数支持。fDOMElement::appendElementNS()和fDOMElement::appendElementPrefix
版本 1.6.5
- 撤销git导出限制,因为这些限制会产生不希望的影响
版本 1.6.4
- 合并PR 31以优化travis构建和git导出(感谢@willemstuursma)
版本 1.6.3
- 合并PR 29以修复PHP 7.2的问题
版本 1.6.2
- 处理PHP的空字符串警告
版本 1.6.1
- 添加了对HHVM问题#5412的解决方案
版本 1.6.0
- 将
createElement*
添加到fDOMElement
和fDOMDocumentFragment
中作为快捷方式 - 将
appendElement*
添加到fDOMDocumentFragment
中作为快捷方式 - 增强保存错误异常信息,包含文件名以包含文件名
- 修复了 fDomDocumentFragment::__toString 的实际工作问题
- 更新/添加了一些测试
版本 1.5.0
-
将
select
添加到fDOMDocument
、fDOMElement
和fDOMNode
中,以支持 CSS 选择器,而不是仅使用 XPath 来查找节点 -
将
query
和queryOne
添加到fDOMNode
中
版本 1.4.3
- 将
saveXML
和saveHTML
添加到fDOMNode
和fDOMElement
中,作为在 ownerDocument 上调用这些方法的快捷方式
版本 1.4.2
- 为
fDOMNode
、fDOMElement
、fDOMDocument
和fDOMDocumentFragment
添加了对__toString
的支持
版本 1.4.1
- 从代码库中移除了未使用的接口
fDOMNodeInterface
版本 1.4.0
- 添加了 XPathQuery 辅助对象,允许在 XPath 附近实现类似预处理语句的 API
版本 1.3.2
- 添加了
__clone
方法,当 DOMDocument 被克隆时重置 domxpath 对象(感谢 Markus Ineichen 指出)
版本 1.3.1
- PHP 5.3 兼容性:更改了从 PHP 5.3 到 5.4 的不兼容更改的内部行为(感谢 Jens Graefe 指出)
版本 1.3.0
- 添加了 appendTextNode 方法(感谢 Markus Ineichen)
- 将 appendElement / appendElementNS 添加到 DOMDocument 中以支持 documentElement "创建”(感谢 Markus Ineichen)
- 重写 createElement / createElementNS,在错误时抛出异常
- 删除了 fDOMFilter 代码:未维护且当前形式下已损坏
- 为 fDOMException 添加了(静态)标志,以全局启用完整的异常信息
- 添加了单元测试
版本 1.2.4
- PHP 5.4 兼容性:为附加方法添加了对可选选项掩码的支持
版本 1.2.3
- 整理代码风格,以符合编码标准
- 为属性添加了对实体的支持
- 添加了 phpcs 文件,以使编码标准公开
版本 1.2.2
- 修复异常,以防止覆盖 \Exception 的最终方法
版本 1.2.1
- 将 fDOMDocument 修改为不再是最终的,在构造函数中使用 lsb 查找实际的类。这应该会修复测试/模拟问题。
版本 1.2.0
- 将 fException 修改为与标准异常更兼容,通过添加一个切换来通过 getMessage() 获取完整信息
- 合并了来自 Andreas 的 setAttributes() 和 setAttributesNS() 方法
- 修复了内部 registerNamespace 变量混淆问题
版本 1.1.0
- 将文件重命名以模仿类名情况
- 修复了 inSameDocument,以支持 DOMDocument 以及 DOMNodes
- 添加了 fDOMXPath 类,提供 queryOne()、quote() 和 prepare() 方法
- 调整了 fDOMDocument 中的转发器,以利用新对象
- 修复了各种返回值,以静态返回 true 以兼容原始 API
- 应用了修正方案,以解决对 fDOMDocument 实例丢失引用的潜在问题
- 支持 registerPHPFunctions
- 更新版权信息
- 添加了缺失的 docblocks
版本 1.0.2
- 缩进和拼写修正,以及一些小错误修复
版本 1.0.1
- 错误修复:修正了类型提示
版本 1.0.0
- 首次发布