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

Extractor Laravel Package

mmoreram/extractor

mmoreram/extractor is a lightweight PHP library for pulling data out of files in multiple formats—CSV, JSON, XML, and more—into clean arrays via a simple, extensible extractor API. A handy, dependency-light tool for Symfony or any PHP project that needs reliable file parsing without the overhead.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for ingestion plumbing. Any roadmap item that starts with "import a CSV," "pull a JSON feed," or "let admins upload a file" needs a parsing layer. This package lets you buy that layer for near-zero cost instead of writing one-off fgetcsv/json_decode/SimpleXML blocks scattered across the codebase.
  • Scoping a data-ingestion feature. The extractor abstraction (source in, array out, local file or URL) is a ready-made seam for features like partner feed sync, bulk catalog import, report generation, or seeding demo data. You can spec the feature around "extract → validate → persist" rather than debating parser internals.
  • Deciding how much of a feature is "real product." CSV/JSON/XML parsing is undifferentiated work. Adopting an extractor keeps engineering effort on validation, mapping, error reporting, and UX — the parts customers notice.
  • Prototype and internal-tool decisions. For back-office tooling, migration scripts, and proof-of-concept integrations where longevity matters less than a two-day turnaround, this is a defensible default.
  • De-risking a "no dependencies" preference. A single, framework-agnostic, MIT-licensed, Composer-installable dependency is easier to defend to architecture review than pulling in a full serializer or HTTP client stack.

When to Consider This Package

Adopt when all of the following hold:

  • The need is genuinely simple: flat CSV, straightforward JSON, or shallow XML into arrays, with mapping/validation living in your own code.
  • Volume is modest and non-streaming is acceptable (whole extraction in memory).
  • You need one uniform API across both local files and remote URLs — that parity is the package's actual differentiating convenience.
  • The work sits at the edge of the product (internal tools, scripts, an MVP slice) rather than in a long-lived core path.
  • You are willing to timebox a verification spike: 21 stars, zero dependents, and a last release of December 2018 mean PHP 8.x compatibility, security posture, and bus-factor are unverified. Confirm it installs and passes your test suite before it reaches a roadmap commitment.

Look elsewhere when:

  • You need streaming, huge files, chunked reads, or backpressure — reach for league/csv or a dedicated streaming parser.
  • You need schema mapping, type coercion, nested-object hydration, or validation as a first-class concern — symfony/serializer, spatie/laravel-data, or league/csv + a validator is a better fit.
  • The "remote URL" path matters in production: fetching arbitrary URLs invites SSRF and timeout/retry concerns. Handle transport yourself (Guzzle/Laravel HTTP client with allowlists) and feed the extractor a local resource.
  • You need spreadsheet formats (XLSX), encodings beyond UTF-8, or malformed-input error reporting — PhpSpreadsheet or a maintained CSV library.
  • Your dependency policy requires active maintenance, security advisories, or a supported-version guarantee. An unmaintained 2018 package will not clear that bar, and no amount of low criticality changes the optics.

Practical mitigation in every case: depend on your own thin interface, not on this package directly. Define Extractor/SourceReader ports in your domain, implement one adapter over mmoreram/extractor, and swapping libraries later becomes a one-file change. That converts an abandonment risk into a maintenance chore.

How to Pitch It (Stakeholders)

For executives: This is a small, free, MIT-licensed library that removes repetitive file-and-feed parsing code from our ingestion features. It doesn't add a vendor, a contract, or a platform commitment — it's a utility. The honest caveat is that it's a low-activity open-source project last released in 2018, so we'll wrap it behind our own interface and verify it on our PHP version before relying on it. Worst case, we replace one small adapter class.

For engineering: One uniform API over local files and remote URLs, pluggable CSV/JSON/XML extractors, plain arrays out, framework-agnostic, trivial to unit test in isolation. It saves the boilerplate fopen/fgetcsv/json_decode/error-handling dance that gets copy-pasted into every import feature. Small surface area means it's cheap to fork or vendor if upstream stays quiet. Caveats to accept knowingly: no streaming, no schema/type layer, no maintained security guarantee, and the remote-URL path needs our own SSRF and timeout controls. Use it behind a domain-owned port so the exit cost is one adapter.

Recommendation: Approved for edge-of-product and internal use with an adapter boundary and a short compatibility spike; not approved as a core dependency for high-volume or customer-facing ingestion without that wrapper in place.

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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route