PHPackages                             oliverde8/php-etl-bundle - 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. [Framework](/categories/framework)
4. /
5. oliverde8/php-etl-bundle

ActiveLibrary[Framework](/categories/framework)

oliverde8/php-etl-bundle
========================

Allow usage of the PHP-ETL library in symfony framework.

v2.0.0(3w ago)75.9k4[2 issues](https://github.com/oliverde8/phpEtlBundle/issues)[1 PRs](https://github.com/oliverde8/phpEtlBundle/pulls)2MITPHPPHP &gt;=8.3CI passing

Since May 10Pushed 3w ago1 watchersCompare

[ Source](https://github.com/oliverde8/phpEtlBundle)[ Packagist](https://packagist.org/packages/oliverde8/php-etl-bundle)[ RSS](/packages/oliverde8-php-etl-bundle/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (11)Versions (26)Used By (2)

PHP Etl Bundle
==============

[](#php-etl-bundle)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/406bcd3460e6c70d9ae9cae2d6bf3e295b0289f62207884358ff97d752a35032/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6f6c697665726465382f70687045746c42756e646c652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/oliverde8/phpEtlBundle/?branch=main)[![Build Status](https://camo.githubusercontent.com/7634e386c92aff9a1bd12cda335710c85493f363c2b06f924875d00526d718be/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6f6c697665726465382f70687045746c42756e646c652f6261646765732f6275696c642e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/oliverde8/phpEtlBundle/build-status/main)[![Code Coverage](https://camo.githubusercontent.com/9c7f86b7ca3d0be9d1ed33f65d30792fdeced9278d49df2b44aeafb60808eff8/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6f6c697665726465382f70687045746c42756e646c652f6261646765732f636f7665726167652e706e673f623d6d61696e)](https://scrutinizer-ci.com/g/oliverde8/phpEtlBundle/?branch=main)[![Latest Stable Version](https://camo.githubusercontent.com/6eafa36c6d0ff1ee90ba9a82a1122415c6c4569831a81fda1670606fc03ccf02/68747470733a2f2f706f7365722e707567782e6f72672f6f6c697665726465382f7068702d65746c2d62756e646c652f76)](//packagist.org/packages/oliverde8/php-etl-bundle)[![Total Downloads](https://camo.githubusercontent.com/cf852b7dcfdf8288738763cc6830a1a11dc2e39526c5e726ced842261bc1f172/68747470733a2f2f706f7365722e707567782e6f72672f6f6c697665726465382f7068702d65746c2d62756e646c652f646f776e6c6f616473)](//packagist.org/packages/oliverde8/php-etl-bundle)[![Latest Unstable Version](https://camo.githubusercontent.com/348215a283cd7595340385ae6ac10a287fcb0f4274a4dbe6cc33ccae39408160/68747470733a2f2f706f7365722e707567782e6f72672f6f6c697665726465382f7068702d65746c2d62756e646c652f762f756e737461626c65)](//packagist.org/packages/oliverde8/php-etl-bundle)[![License](https://camo.githubusercontent.com/32df0fa747b37ec7e6f9be21b3effed181ede782a508bebd37ac56d17086e938/68747470733a2f2f706f7365722e707567782e6f72672f6f6c697665726465382f7068702d65746c2d62756e646c652f6c6963656e7365)](//packagist.org/packages/oliverde8/php-etl-bundle)

The Php etl bundle allows the usage of [Oliver's PHP Etl](https://github.com/oliverde8/php-etl) library in symfony.

You should also check the [PHP ETL's Easy Admin Bundle](https://github.com/oliverde8/phpEtlEasyadminBundle) to have interfaces.

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

[](#installation)

1. Install using composer
2. in `/config/` create a directory `etl`
3. Enable bundle:

```
    \Oliverde8\PhpEtlBundle\Oliverde8PhpEtlBundle::class => ['all' => true],
```

4. Optional: Enable queue if you wish to allow users from the easy admin panel to do executions.

```
framework:
  messenger:
    routing:
        "Oliverde8\PhpEtlBundle\Message\EtlExecutionMessage": async
```

5. Optional: Enable creation of individual files for each log by editing the monolog.yaml

```
etl:
    type: service
    id: Oliverde8\PhpEtlBundle\Services\ChainExecutionLogger
    level: debug
    channels: ["!event"]
```

Usage
-----

[](#usage)

### Creating an ETL chain

[](#creating-an-etl-chain)

First read the documentation of the [PHP ETL](https://github.com/oliverde8/php-etl)

Each chain is declare in a single file. The name of the chain is the name of the file created in `/config/etl/`. **Example:**

```
chain:
  "Dummy Step":
    operation: rule-engine-transformer
    options:
      add: true
      columns:
        test:
          rules:
            - get : {field: [0, 'uid']}
```

### Executing a chain

[](#executing-a-chain)

```
./bin/console etl:execute demo '[["test1"],["test2"]]' '{"opt1": "val1"}'
```

The first argument is the input, depending on your chain it can be empty. The second are parameters that will be available in the context of each link in the chain.

### Additional commands

[](#additional-commands)

#### Get a definition

[](#get-a-definition)

```
./bin/console etl:get-definition demo
```

### Adding your own chain operation

[](#adding-your-own-chain-operation)

To add your own chain operation you need 2 classes. The operation itself that we will call `MyVendor\Etl\Operation\OurTestOperation`, and a `MyVendor\Etl\OperationFactory\OurTestOperationFactory` factory to create it. The factory allows us to configure the operation and inject service to our operation.

All operations needs to implement `DataChainOperationInterface`; they can extend `AbstractChainOperation`.

All factories needs to extend `Oliverde8\Component\PhpEtl\Builder\Factories\AbstractFactory`.

The operation is a Model and not a service, you therefore need to add the path to the exclusions so that it's not made a service by symfony:

```
App\:
  resource: '../src/'
  exclude:
    - '../src/Etl/Operation'
```

Factories needs to be tagged `etl.operation-factory\\ . To remove the need to tag all your factories you can add the following line your your services.yaml file

```
    MyVendor\Etl\OperationFactory\:
        resource: '../src/Etl/OperationFactory/'
        tags: ['etl.operation-factory']
```

For more information on how the etl works and how to create operations check the [Php Etl Documentation](https://github.com/oliverde8/php-etl#creating-you-own-operations)

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance89

Actively maintained with recent releases

Popularity30

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 89.6% 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 ~95 days

Recently: every ~159 days

Total

21

Last Release

27d ago

Major Versions

v1.1.0-alpha8 → v2.0.0-alpha12026-03-25

PHP version history (4 changes)1.0.0-alphaPHP &gt;=7.4.0

v1.1.0-alpha1PHP &gt;=8.0

v2.0.0-alpha1PHP &gt;=8.2

v2.0.0PHP &gt;=8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3658513?v=4)[De Cramer Oliver](/maintainers/oliverde8)[@oliverde8](https://github.com/oliverde8)

---

Top Contributors

[![oliverde8](https://avatars.githubusercontent.com/u/3658513?v=4)](https://github.com/oliverde8 "oliverde8 (60 commits)")[![johbuch](https://avatars.githubusercontent.com/u/31535432?v=4)](https://github.com/johbuch "johbuch (7 commits)")

---

Tags

bundlephpsymfonysymfony-bundlesymfony-ux

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/oliverde8-php-etl-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/oliverde8-php-etl-bundle/health.svg)](https://phpackages.com/packages/oliverde8-php-etl-bundle)
```

###  Alternatives

[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.9M535](/packages/pimcore-pimcore)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M235](/packages/sulu-sulu)[shopware/storefront

Storefront for Shopware

674.7M285](/packages/shopware-storefront)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M672](/packages/shopware-core)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.2k19.7k](/packages/prestashop-prestashop)

PHPackages © 2026

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