Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Dom Laravel Package

windwalker/dom

Windwalker Dom is a PHP package for parsing, querying, and manipulating HTML and XML documents with an intuitive API. It offers node traversal, CSS-style selectors, and safe document building, making it handy for scraping, templating, and content transformation in Laravel or any Composer-based proje...

View on GitHub
Deep Wiki
Context7

[READ ONLY] A php Virtual-DOM library to help us build DOM string dynamically.

Frequently asked questions about Dom
How do I install windwalker/dom in a Laravel project?
Install it with Composer using composer require windwalker/dom ^4.0. The package uses the Windwalker\Dom namespace and does not require a Laravel service provider or configuration file. Because the repository is marked read-only, verify that the version resolves from Packagist and is still available before pinning it in production.
Does windwalker/dom have a Laravel service provider or facade?
No, the package has no Laravel service provider, facade, Blade directive, or config publish step. You would use it as a plain Composer library and write any Laravel-specific glue yourself. For maintainability, wrap it behind an internal interface instead of calling Windwalker\Dom directly throughout your application.
Which Laravel and PHP versions does windwalker/dom support?
The supplied material does not declare a verified Laravel or PHP support matrix; it only shows the Composer constraint windwalker/dom ^4.0. The assessment recommends Laravel 10, 11, or 12 with PHP 8.1+ as the target stack to validate. Check the package's composer.json and CI matrix before adopting it, especially if you run PHP 8.2 to 8.4.
What is windwalker/dom best used for in a Laravel application?
It fits narrow markup-building jobs such as transactional email bodies, PDF or report fragments, syndication feeds, webhook HTML payloads, and reusable markup components. It can also parse, query, and manipulate HTML and XML through node traversal and CSS-style selectors. It is not a general replacement for a full templating engine.
Should I replace Blade with windwalker/dom?
No, do not rip out Blade. Blade remains the primary view layer for Laravel applications, and windwalker/dom is better scoped to isolated string builders where Blade is a poor fit. Keep it behind an anti-corruption layer so it can be swapped without touching domain code.
Is windwalker/dom safe for user-generated content, or do I need to escape output?
A DOM string builder must correctly escape text and attribute values, and the supplied material says this must be tested explicitly rather than assumed. Do not pass user-generated content through it without verifying escaping behavior and adding regression tests. If escaping is not verifiably automatic, treat the output as unsafe and escape at the boundary.
Is windwalker/dom actively maintained, or is it abandoned?
The repository carries a READ ONLY marker, has negligible adoption, and its bug and contribution links point to the Windwalker framework monorepo. That strongly suggests the component has no independent roadmap, security response process, or guaranteed PHP-version currency. Treat it as a low-risk install but a high-risk long-term dependency, and consider forking or choosing a maintained alternative for core use.
Can windwalker/dom conflict with symfony/dom-crawler or Laravel dependencies?
The assessment says you must verify that the package does not pull in Windwalker framework core or other packages that conflict with Laravel's stack. Check the dependency tree against symfony/dom-crawler, masterminds/html5, and Laravel's own packages before adopting it. Keep the dependency minimal and avoid letting it leak into shared application code.
How should I test windwalker/dom in a Laravel app?
Test it with a representative artifact such as an email template, invoice fragment, or feed item, and assert the exact serialized output. Add explicit tests for text and attribute escaping, malformed input, and XML versus HTML serialization. Because the package is not Laravel-native, also test the wrapper boundary you create around it.
What are good alternatives to windwalker/dom for building HTML strings in Laravel?
Consider symfony/dom-crawler or PHP's DOMDocument for parsing and manipulation, nette/utils HTML helpers for escaping, or a small hand-rolled stringifier with explicit escaping. Blade components and Laravel's own view layer may be simpler for view rendering. Choose an alternative with active maintenance if the markup builder is core to your product.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core