- Is mmoreram/extractor compatible with Laravel 10 and Laravel 11?
- Probably not out of the box. The last release was in December 2018, with Composer constraints from the PHP 7.1 to 7.3 era, so it may fail composer require on PHP 8.1+ or require --ignore-platform-reqs. Verify in a scratch Laravel app with composer why-not mmoreram/extractor before doing design work. Avoid ignore-platform-reqs for production use.
- How do I install mmoreram/extractor in a Laravel project?
- Install it with Composer using composer require mmoreram/extractor. It is framework-agnostic, so no Laravel service provider is required; you can optionally bind it in the container if you want injection. Check dependency resolution on your PHP and Laravel versions first, because the package predates PHP 8.
- What file formats does mmoreram/extractor support?
- The package is designed to extract data from formats such as CSV, JSON, and XML into plain arrays through small extractor classes. It is extensible, so you can add extractors for other formats. It does not appear to provide schema validation, so validate and normalize the returned arrays before using them in business logic.
- Can mmoreram/extractor read files from URLs or remote storage?
- The package describes a local file or URL in, plain array out contract, but remote-fetch semantics are not clear from the overview. If URLs can be user-influenced, treat it as an SSRF risk and wrap remote reads with Laravel's HTTP client for timeouts, retries, TLS verification, auth headers, and response-size limits. Prefer Storage or Http in Laravel when you need controlled remote ingestion.
- Does mmoreram/extractor stream large files or load everything into memory?
- Its array-returning contract implies whole-payload materialization rather than streaming. There is no evident LazyCollection, chunked-read, or streamed HTTP support, and the practical file-size ceiling is unclear. For large imports, use league/csv with streaming or Laravel LazyCollection patterns instead.
- Is mmoreram/extractor still maintained?
- It appears effectively unmaintained: the last release was 2018-12-17, with around 21 stars, zero dependents, and a single-maintainer footprint. That means no PHP 8.x compatibility guarantee and no clear CVE response path. If you adopt it, plan for internal ownership, vendor forks, or replacement before it becomes load-bearing.
- How does mmoreram/extractor handle malformed CSV or XML data?
- The risk is silent coercion of malformed input into partial arrays, since the package is described as returning arrays without schema validation. Encoding assumptions, UTF-8 BOM handling, delimiter detection, and partial-parse detectability are not addressed in the overview. Add validation after extraction and test fixtures for broken CSV, XML, and JSON so failures are visible.
- What are good Laravel alternatives to mmoreram/extractor?
- Laravel already covers most use cases natively: Storage::json() for JSON on disk, Http::get()->json() for API JSON, league/csv for CSV, SimpleXMLElement for XML, and spatie/simple-excel or laravel-excel for spreadsheets. Use mmoreram/extractor only if its uniform local-or-remote multi-format API saves enough code to justify an unmaintained dependency. Otherwise keep parsing in first-party or actively maintained libraries.
- How should I test code that uses mmoreram/extractor?
- Its small extractor units are easy to unit test, so wrap the package behind your own adapter and test that adapter against fixture files. Assert normalized DTOs or validated arrays rather than the third-party array shape, so you can replace the package later. Use PHPUnit or Pest, and fake any remote fetches so tests do not depend on network behavior.
- Can I use mmoreram/extractor in production?
- Only with caution. The abandonment risk, PHP 8 compatibility uncertainty, and array-only contract make it a poor fit for critical ingestion paths unless you wrap and own it. Restrict it to a small number of importer or ETL jobs, normalize outputs through collect() or DTOs immediately, and define typed exceptions around it. Have a fork, vendor, or replace plan before production dependency.