goetas/xmldom
A lightweight XML DOM implementation for PHP, offering an object-oriented API to build, parse, traverse, and manipulate XML documents. It provides a simple, portable option for projects needing DOM-style XML handling without heavy dependencies.
DOMDocument, aimed at the most consistently painful part of XML work — namespace-aware element creation, node import, and traversal. It informs the build vs. buy vs. wrap question: do we hand-roll helper classes, adopt a wrapper, or write raw DOM code?XmlBuilder/DomHelper utility (a very common outcome of a SOAP integration), this package is the "buy" option to price against. It is a ~1-file abstraction, so the honest comparison is against 100–200 lines of in-house code, not against a platform.goetas-webservices/xsd2php / xsd-reader / soap-client style toolchains. That makes it a decision input for any XSD-to-PHP codegen or SOAP client evaluation, not a standalone roadmap item.Adopt only under a narrow, verifiable set of conditions:
goetas-webservices family (xsd2php, xsd-reader, soap-client) and this package arrives as a transitive constraint you cannot pin away — in which case you are managing it, not choosing it.Look elsewhere in every other case:
DOMDocument + DOMXPath directly, optionally wrapped by your own small service class. No dependency, no archive risk, full control.symfony/dom-crawler — already adjacent to Laravel's Symfony dependency tree and actively maintained.spatie/array-to-xml or sabre/xml for Laravel-friendly, maintained, documented options.Executives: A one-line summary — this is an abandoned micro-library for XML handling with essentially no user base, and we should not take a dependency on it. The cost of avoiding it is small: XML namespace handling can be solved with roughly a day of engineering or with maintained, mainstream alternatives. The cost of adopting it is unbounded: no security patches, no PHP-version guarantees, no community to notice a regression, and a future migration forced on our schedule rather than ours. Recommendation: do not adopt; record as evaluated and rejected.
Engineering: The problem it addresses is real — raw DOMDocument namespace handling is verbose and easy to get subtly wrong. But the solution here is a thin, unmaintained wrapper at a very low adoption score, with an archived upstream. The practical guidance is: use native DOMDocument behind a small internal service, or reach for symfony/dom-crawler / sabre/xml / spatie/array-to-xml depending on whether we're reading or writing. If this ever shows up as a transitive dependency of xsd2php or a SOAP toolchain, escalate it to an explicit fork-and-own decision rather than silently inheriting it.
How can I help you explore Laravel packages today?