PHPackages                             arrounded/extractors - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. arrounded/extractors

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

arrounded/extractors
====================

An abstraction layer to extract data from various sources

010[1 issues](https://github.com/arrounded/extractors/issues)PHP

Since Jun 21Pushed 11y ago2 watchersCompare

[ Source](https://github.com/arrounded/extractors)[ Packagist](https://packagist.org/packages/arrounded/extractors)[ RSS](/packages/arrounded-extractors/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Arrounded/extractors
====================

[](#arroundedextractors)

[![Build Status](https://camo.githubusercontent.com/0f5097b6b0ab8a69de9fed8934c5d266161bd520ecf5ca286dc5245b55b556e2/687474703a2f2f696d672e736869656c64732e696f2f7472617669732f6172726f756e6465642f657874726163746f72732e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/arrounded/extractors)[![Latest Stable Version](https://camo.githubusercontent.com/9e056d8ab5d3535b9bbf9523174efea7eb3469910efe95d8fc193f2116aad1f9/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6172726f756e6465642f657874726163746f72732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/arrounded/extractors)[![Total Downloads](https://camo.githubusercontent.com/a537dfd5641d3c9744b9c4c476132f676e5a2d841a37b2f4db5fc7f681099e74/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6172726f756e6465642f657874726163746f72732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/arrounded/extractors)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/bf0123cb82bcdcd288259fa42ec840c8f69793bc466801d7ff8de1f587f5eb9d/687474703a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6172726f756e6465642f657874726163746f72732e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/arrounded/extractors/)[![Code Coverage](https://camo.githubusercontent.com/257bde392c6e91e6ad75a6e53bdcf977ade4b7acf1077bdb8ef923bd7a9524ca/687474703a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f6172726f756e6465642f657874726163746f72732e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/arrounded/extractors/)

Install
-------

[](#install)

Via Composer

```
$ composer require arrounded/extractors
```

Usage
-----

[](#usage)

The idea is that you extend the existing extractors, which provide the minimal functionality, and tweak it for your use case.

For example (using the `CsvExtractor`)

```
class MyExtractor extends CsvExtractor {

   public function getData(array $data = [])
   {
        // $data contains the entire content of a row in the CSV

        // You can return whatever you need from the row.
        return $data;
   }
}

// Using the extractor

$extractor = new MyExtractor();
$extractor->setFixture('path/to/data.csv');
$extractor->run(function ($data) {
    // $data contains whatever is the output of `MyExtractor::getData()`.

    // Persist in database
});
```

Testing
-------

[](#testing)

```
$ composer test
```

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/aa3be3e9e416053f11f2296a5fb36f24e45bc70fa293b309d54c2829ded5f373?d=identicon)[Anahkiasen](/maintainers/Anahkiasen)

![](https://www.gravatar.com/avatar/041cdc8fc831716b7f56c3ddf84169ea1d97ca91e9ea90b42be88d73c404ff8a?d=identicon)[bramdevries](/maintainers/bramdevries)

---

Top Contributors

[![bramdevries](https://avatars.githubusercontent.com/u/1002245?v=4)](https://github.com/bramdevries "bramdevries (5 commits)")

### Embed Badge

![Health badge](/badges/arrounded-extractors/health.svg)

```
[![Health](https://phpackages.com/badges/arrounded-extractors/health.svg)](https://phpackages.com/packages/arrounded-extractors)
```

###  Alternatives

[martin/forms-plugin

Create easy (and almost magic) AJAX forms

601.3k](/packages/martin-forms-plugin)[cytopia/check_drupal

This nagios plugin will check if your drupal site has issues (security updates, updates\[optional\], outstanding db updates, other problems).

294.1k](/packages/cytopia-check-drupal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
