PHPackages                             ralphschindler/etl-pipeliner - 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. ralphschindler/etl-pipeliner

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

ralphschindler/etl-pipeliner
============================

v0.0.6(5y ago)164.3k↓76.3%3UNLICENSEPHPPHP ^7.0|^8.0

Since Feb 7Pushed 5y ago1 watchersCompare

[ Source](https://github.com/ralphschindler/php-etl-pipeliner)[ Packagist](https://packagist.org/packages/ralphschindler/etl-pipeliner)[ RSS](/packages/ralphschindler-etl-pipeliner/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (4)DependenciesVersions (8)Used By (0)

PHP ETL Pipeliner
=================

[](#php-etl-pipeliner)

Define ETL pipelines to extract, transform, and load data from one source to another.

Installation
============

[](#installation)

```
composer require ralphschindler/etl-pipeliner

```

Usage
=====

[](#usage)

To build an ETL pipeline you need the ETL, an Extractor, a Loader and an Executor.

ETL object
----------

[](#etl-object)

Implement a class extending `\EtlPipeliner\AbstractEtl`. This package ships with an extractor and a loader for use within Laravel application.

```
class MyEtlObject extends \EtlPipeline\AbstractEtl
{
    public function extractor(): \EtlPipeliner\AbstractExtractor
    {
        return new \EtlPipeliner\Laravel\DbExtractor(app('db')->connection());
    }

    public function transform(array $data)
    {
        return $data;
    }

    public function loader(): \EtlPipeliner\AbstractLoader
    {
            return new \EtlPipeliner\Laravel\DbLoader(app('db')->connection());
    }
}
```

Execute the ETL
---------------

[](#execute-the-etl)

```
$executor = new \EtlPipeliner\EtlExecutor();

$executor->execute(new MyEtlObject());
```

Database support
================

[](#database-support)

The Laravel extractor and loader currently support:

- Mysql
- SQL Server
- Postgres

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 78.9% 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.

###  Release Activity

Cadence

Every ~150 days

Recently: every ~171 days

Total

6

Last Release

1951d ago

PHP version history (2 changes)v0.0.1PHP ^7.0

v0.0.6PHP ^7.0|^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/9c4a15cb4e97bc39a3aea8304fb04d56c0d753f2a6b79c83db0a894647ba8de7?d=identicon)[ralphschindler](/maintainers/ralphschindler)

---

Top Contributors

[![ralphschindler](https://avatars.githubusercontent.com/u/76674?v=4)](https://github.com/ralphschindler "ralphschindler (15 commits)")[![jcarouth](https://avatars.githubusercontent.com/u/34648?v=4)](https://github.com/jcarouth "jcarouth (3 commits)")[![ivanmarchenko83](https://avatars.githubusercontent.com/u/38218499?v=4)](https://github.com/ivanmarchenko83 "ivanmarchenko83 (1 commits)")

### Embed Badge

![Health badge](/badges/ralphschindler-etl-pipeliner/health.svg)

```
[![Health](https://phpackages.com/badges/ralphschindler-etl-pipeliner/health.svg)](https://phpackages.com/packages/ralphschindler-etl-pipeliner)
```

###  Alternatives

[symfony/object-mapper

Provides a way to map an object to another object

361.5M55](/packages/symfony-object-mapper)[aeon-php/business-hours

Abstraction allowing to define and check against business hours

10146.1k](/packages/aeon-php-business-hours)

PHPackages © 2026

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