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

Rss Php Laravel Package

dg/rss-php

dg/rss-php is a lightweight, dependency-free PHP library for reading RSS and Atom feeds. It offers a simple API for fetching and parsing feeds, handles namespaces and enclosures, and works across PHP versions from 5.3 onward.

Deep Wiki
Context7

Product Decisions This Supports

  • Feature go/no-go on feed ingestion. Whether to add "follow/subscribe to external sources," a news reader, an industry-monitoring dashboard, a content-ops ingest tool, or "latest posts from our blog" syndication widgets. The library only needs to answer "can we parse this feed?" — it doesn't decide whether users want the feature, but it collapses the cost of finding out.
  • Build vs. buy for the parsing layer. RSS/Atom parsing is commodity work with nasty long-tail edge cases (RSS 0.9x/1.0/2.0 vs. Atom, namespaces, enclosures, malformed XML, encoding declarations, inconsistent date formats). The decision is: spend eng days hardening a parser, or spend hours wiring one up and spend the saved time on the normalization/dedupe/scheduling layer that actually differentiates the product.
  • MVP scoping and spike budget. A small, dependency-light consumer library is the right tool for a 1–2 day validation spike: pull 10 real feeds, render items in an admin view, watch how users react. That's a cheap experiment that de-risks a much larger ingestion pipeline commitment.
  • Architecture boundary decision. It forces an explicit call on whether feed parsing sits behind our own FeedReader interface (swappable parser) or leaks into domain code. It also forces the related calls: do we store raw parsed items or normalize into our own model; do we sanitize third-party HTML before render; do we poll on a schedule with ETag/Last-Modified, or naively refetch.
  • Concrete fit map. Internal tools, admin/ops dashboards, one-off import and backfill scripts, artisan commands and queued jobs pulling a modest set of known feeds. Not a fit for feed generation (we'd use spatie/laravel-feed or symfony/feed) and not a fit for high-volume, untrusted-source ingestion without significant hardening on our side.

When to Consider This Package

Consider it when:

  • Consumption only, modest feed count, and feeds are largely well-formed sources we chose (partners, our own properties, curated industry sites).
  • We're optimizing for time-to-signal on a spike and are comfortable throwing the parser away.
  • License and cost are clean: BSD-3-Clause is permissive, commercially safe, attribution-only — no procurement cycle.
  • We've verified it runs on our PHP version. This is non-negotiable: last release was 2015-07-02, so it predates PHP 7 and PHP 8. Audit for removed functions (each()), curly-brace string offsets, and untyped/loosely-typed signatures before assuming it works.

Look elsewhere when:

  • Maintenance or security posture is a requirement. Ten years without a release means no patch path, no disclosed-vulnerability response, and a rough time in vendor due diligence. Use laminas/laminas-feed (actively maintained, read and write, namespace-aware) or simplepie/simplepie (enormous real-world feed corpus tolerance, the de facto survivor).
  • Security is load-bearing. Parsing untrusted XML raises XXE and entity-expansion concerns; we need a parser with a current hardening story, or we own that hardening explicitly.
  • You want Laravel-native ergonomics. willvincent/feeds-style wrappers exist, and for a handful of known-good feeds, Http::get() plus SimpleXMLElement is fewer moving parts than a stale dependency.
  • Volume, reliability, or freshness matter. Conditional GETs, ETag/Last-Modified, per-feed backoff, rate limiting, and circuit breaking are not in this package — that's our code with any library, so pick one whose parser we won't have to replace mid-flight.
  • Podcasts/media. Enclosure and iTunes namespace handling is where minimal parsers tend to fall short.
  • Treat the opportunity score of 1.91 as a signal: there's little differentiation or headroom to be gained by investing here. It's a commodity utility, so treat it as an accelerator, not a foundation.

How to Pitch It (Stakeholders)

Executives: "This is a ~500-line, permissively licensed RSS/Atom reader that lets us validate feed-based content ingestion in days rather than weeks, with no vendor contract and no procurement. It is deliberately a short-term accelerator, not a platform bet — the library hasn't been updated since 2015, so my recommendation is to prove the feature with it and then swap in a maintained parser (laminas-feed or SimplePie) before anything feed-related becomes customer-critical. Cost of the swap is low if we keep it behind our own interface, and I'm asking for that boundary up front."

Engineering: "Read-only consumption. Wrap it behind a single FeedReader contract so the parser is swappable, and budget a short spike to confirm PHP 8 compatibility and behavior across our actual feed list. We own everything around the parser regardless: HTTP timeouts and retries, ETag/Last-Modified conditional GETs, per-feed error isolation, dedupe, and sanitizing third-party HTML before render. Don't fork or extend the library — if ingestion turns out to be a core product surface, we move to a maintained parser and build our own normalization layer 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
cgv/localized-resource