PHPackages                             jwhulette/pipes - 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. jwhulette/pipes

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

jwhulette/pipes
===============

An PHP ETL Processing Library

v4.0.0(4mo ago)221216[1 issues](https://github.com/jwhulette/pipes/issues)[4 PRs](https://github.com/jwhulette/pipes/pulls)MITPHPPHP ^8.3CI passing

Since Jun 9Pushed 3w ago2 watchersCompare

[ Source](https://github.com/jwhulette/pipes)[ Packagist](https://packagist.org/packages/jwhulette/pipes)[ GitHub Sponsors](https://github.com/jwhulette)[ RSS](/packages/jwhulette-pipes/feed)WikiDiscussions main Synced today

READMEChangelog (5)Dependencies (14)Versions (13)Used By (0)

[![Banner](.github/images/Pipes.png)](.github/images/Pipes.png)

[![Tests](https://github.com/jwhulette/pipes/actions/workflows/tests.yml/badge.svg)](https://github.com/jwhulette/pipes/actions/workflows/tests.yml)[![Packagist PHP Version](https://camo.githubusercontent.com/2e63f5d8632c83303560ccbf58abbf841be98d9bc61f249d27181d8a37301606/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6a7768756c657474652f70697065732f706870)](https://camo.githubusercontent.com/2e63f5d8632c83303560ccbf58abbf841be98d9bc61f249d27181d8a37301606/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6a7768756c657474652f70697065732f706870)[![Laravel](https://camo.githubusercontent.com/122cad70dadb5c94d44586694b83a7fdf4b55edf4b343d98c8f4fdb999f39632/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31312532422d626c7565)](https://camo.githubusercontent.com/122cad70dadb5c94d44586694b83a7fdf4b55edf4b343d98c8f4fdb999f39632/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31312532422d626c7565)[![Packagist Version](https://camo.githubusercontent.com/5a8ee6b74a940184b80ef6dcf3a861944bf77e0c7f7351320cb2d38c99dc8509/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a7768756c657474652f7069706573)](https://camo.githubusercontent.com/5a8ee6b74a940184b80ef6dcf3a861944bf77e0c7f7351320cb2d38c99dc8509/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a7768756c657474652f7069706573)[![Total Downloads](https://camo.githubusercontent.com/11f1875626ac7fa402745a3a28851ce5da513618ed2c5c55d3ea8a0d4136d6d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a7768756c657474652f70697065732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jwhulette/pipes)

Pipes
=====

[](#pipes)

Pipes is a PHP Extract Transform Load \[ETL\] package for Laravel 11+

Installation
------------

[](#installation)

```
composer require jwhulette/pipes
```

Usage
-----

[](#usage)

1. Create a new EtlPipe object.
2. Add an extractor to the object to read the input file

    - You can create your own extractor by implementing the ExtractorInterface.php
3. Add transformers to transform the data

    - You can add as many transformers as you want.
    - You can create your own transformers by implementing the TransformerInterface.php
    - Data is passed to the transformers in the order they are defined
4. Add a loader to write out the transformed data.

    - You can create your own loader by implementing the LoaderInterface.php

```
(new EtlPipe())
->extract(new CsvExtractor($this->csvFile));
->transforms([
    new CaseTransformer([], 'lower'),
    new TrimTransformer(),
])
->load(new CsvLoader('saved-file.csv'));
```

##### Notes:

[](#notes)

**Built-in extractors:**

- CsvExtractor
- XlsxExtractor
- SqlExtractor

**Built-in loaders:**

- CsvLoader
- SqlLoader

**Built-in transformers:**

- CaseTransformer - Change the case of a string
- DateTimeTransformer - Change the format of a date string
- PhoneTransformer - Transform a US phone, removing all non numeric characters, and limiting the length to the first 10 digits
- TrimTransformer - Trim a string
- ZipcodeTransformer - Transform a US zip code, removing all non numeric characters, and left pad zeros for zip codes less than 5 digits
- ConditionalTransformer - Transform a column, based on the values of another column

*Data is passed to the transformers in the order they are defined*

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Wes Hulette](https://github.com/jwhulette)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

52

↑

FairBetter than 96% of packages

Maintenance86

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 96% 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 ~333 days

Total

6

Last Release

129d ago

Major Versions

v1.0.0 → v2.0.02022-05-26

v2.0.0 → v3.0.02022-12-26

v3.0.2 → v4.0.02025-12-31

PHP version history (4 changes)v1.0.0PHP ^8

v2.0.0PHP ^8.0|^8.1

v3.0.0PHP ^8.1

v4.0.0PHP ^8.3

### Community

Maintainers

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

---

Top Contributors

[![jwhulette](https://avatars.githubusercontent.com/u/4930051?v=4)](https://github.com/jwhulette "jwhulette (166 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![ryanmortier](https://avatars.githubusercontent.com/u/2053960?v=4)](https://github.com/ryanmortier "ryanmortier (1 commits)")[![tgeorgel](https://avatars.githubusercontent.com/u/11785727?v=4)](https://github.com/tgeorgel "tgeorgel (1 commits)")[![wivaku](https://avatars.githubusercontent.com/u/2084872?v=4)](https://github.com/wivaku "wivaku (1 commits)")[![xswirelab](https://avatars.githubusercontent.com/u/98958488?v=4)](https://github.com/xswirelab "xswirelab (1 commits)")

---

Tags

etllaravelphppipeline

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/jwhulette-pipes/health.svg)

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

###  Alternatives

[ashallendesign/short-url

A Laravel package for creating shortened URLs for your web apps.

1.4k1.9M4](/packages/ashallendesign-short-url)[laravel-enso/tables

Data Table library with server-side processing and a VueJS component

63153.4k47](/packages/laravel-enso-tables)[intervention/zodiac

Zodiac Sign Calculator

58191.7k](/packages/intervention-zodiac)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40129.3k2](/packages/erlandmuchasaj-laravel-gzip)[solspace/craft-calendar

The most powerful event management and calendaring plugin!

1830.8k1](/packages/solspace-craft-calendar)

PHPackages © 2026

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