theseer/fdomdocument

此包已 废弃 并不再维护。未建议任何替代包。

此存储库中包含的类扩展了标准DOM,在所有错误情况下使用异常而不是PHP警告或通知。它们还添加了各种自定义方法和快捷方式,以提高便利性和简化DOM的使用。

1.6.7 2022-01-25 23:10 UTC

This package is auto-updated.

Last update: 2022-02-25 23:57:11 UTC


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
版本 1.6.0
  • createElement* 添加到 fDOMElementfDOMDocumentFragment 中作为快捷方式
  • appendElement* 添加到 fDOMDocumentFragment 中作为快捷方式
  • 增强保存错误异常信息,包含文件名以包含文件名
  • 修复了 fDomDocumentFragment::__toString 的实际工作问题
  • 更新/添加了一些测试
版本 1.5.0
  • select 添加到 fDOMDocumentfDOMElementfDOMNode 中,以支持 CSS 选择器,而不是仅使用 XPath 来查找节点

  • queryqueryOne 添加到 fDOMNode

版本 1.4.3
  • saveXMLsaveHTML 添加到 fDOMNodefDOMElement 中,作为在 ownerDocument 上调用这些方法的快捷方式
版本 1.4.2
  • fDOMNodefDOMElementfDOMDocumentfDOMDocumentFragment 添加了对 __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
  • 首次发布