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

Simple Html Dom Bundle Laravel Package

erivello/simple-html-dom-bundle

Symfony2 bundle that integrates the Simple HTML DOM Parser, letting you load HTML and find tags with jQuery-like selectors via the simple_html_dom service. Extract links, content, and attributes easily.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature feasibility and scoping spikes. This package answers "can we extract data from these HTML pages cheaply, and how soon?" It supports prototyping internal tools — link/asset audits, content-migration extractors, catalog or price monitoring, QA fixture generation, sitemap/SEO checks — with days of effort rather than a sprint. Use it to size an opportunity before committing roadmap capacity.
  • Build vs. buy vs. skip. The license is $0, but the true cost is ownership: no tagged releases, dev-master only, one maintainer, 8 stars, zero dependents. A PM decision here should frame it as "borrow a prototype, buy a maintained parser, or build an ingestion path" — not "free feature."
  • Roadmap boundaries for scraping/extraction. If HTML extraction is an internal, batch, low-stakes utility, this is a legitimate stopgap. If the capability becomes customer-facing or contractually promised (data freshness SLAs, coverage guarantees, monitored feeds), the roadmap must graduate to a supported stack (symfony/dom-crawler + masterminds/html5, symfony/http-client, headless rendering, or a managed scraping vendor). This package is a good marker of where that line sits.
  • Platform and tech-debt positioning. The integration model is Symfony2-era (app/AppKernel.php, $this->container->get(...)). On Laravel there is no bundle concept at all — the wrapper delivers nothing, and only the underlying simple_html_dom API is even applicable. Choosing this package is an implicit decision to keep a legacy app on a legacy framework; make that an explicit, dated decision rather than an accidental one.
  • Risk and compliance scoping. load('http://...') fetches arbitrary URLs. Whether scraping targets are ours, partners', or user-supplied determines SSRF exposure, allow-listing, rate limiting, robots/ToS posture, and PII handling — product and legal scope, not just code review.
  • Hiring and upgrade planning. Negligible hiring signal (MIT, trivially swappable) but a recurring tax on every PHP and framework upgrade. Budget a named owner and a migration line item up front.

When to Consider This Package

Consider it when:

  • You are maintaining a legacy Symfony 2.x application where bundles are still registered in AppKernel.php, and the work is a short-lived internal utility.
  • The need is narrow and disposable: pull links, tables, or text blocks using jQuery-like selectors (find('a'), $element->href), with low traffic and no external commitment.
  • You want proof-of-concept speed with near-zero integration cost and are comfortable pinning dev-master in isolation behind an interface you own.
  • You are evaluating patterns, not adopting code — for example, using it as a reference for selector-based extraction before implementing the same idea on DomCrawler in Laravel or modern Symfony.

Look elsewhere when:

  • You are on Laravel, Symfony 4+, or PHP 8+. The bundle's value (service registration) does not exist outside Symfony2; the underlying parser is a SourceForge-era library with known PHP 8 and memory issues.
  • You need HTML5-correct parsing, charset handling, or predictable memory on large documents — use symfony/dom-crawler + masterminds/html5, or voku/simple_html_dom if the API must be preserved.
  • You need HTTP retries, throttling, cookies, proxies, or concurrency — pair symfony/http-client or Guzzle with DomCrawler.
  • The target pages are JavaScript-rendered — this cannot execute JS; use a headless browser or a managed vendor.
  • Input is untrusted or user-supplied, or the feature faces customers — an abandoned parser with direct URL fetching will not survive a security review.

How to Pitch It (Stakeholders)

For executives: This is a zero-license-cost adapter that lets an existing Symfony2 app extract data from HTML pages in days, not sprints. Treat it as a tactical accelerator, not a platform bet: it can unblock an internal initiative quickly, but it is unmaintained, has effectively no user base, and ships no versioned releases — so every deployment carries uncontrolled change. Fund it as a spike with an expiry date and a named migration line item; do not let it sit under anything customer-facing or contractually binding.

For engineering: It is a thin container wrapper around simple_html_dom — one Composer require and one bundle registration — so the integration cost is dominated by the abandoned upstream parser, not this package. Recommended posture: (1) define an application-owned HtmlExtractor interface so the parser is a swappable detail, (2) build the first implementation on symfony/dom-crawler + CssSelector (already framework-maintained, maps cleanly to jQuery-style selectors), (3) pin any legacy usage by commit hash and vendor-fork if the bundle is genuinely required, (4) enforce an outbound URL allow-list, timeouts, size caps, and explicit memory cleanup in workers, and (5) add fixture tests that capture attribute/text normalization differences before migration. Net: low learning cost, high hidden operating cost.

For security and risk: Flag two accepted risks with a named owner and review date — remote fetching from arbitrary URLs (SSRF, DNS/timeout hangs) and no upstream patching. If the target set includes untrusted URLs, or the capability is customer-visible, the recommendation is to skip the package and budget the DomCrawler equivalent instead.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager