oliverde8 / php-etl-easyadmin-bundle
Add interfaces to see execution & to run executions of the php-etl.
Package info
github.com/oliverde8/phpEtlEasyAdminBundle
pkg:composer/oliverde8/php-etl-easyadmin-bundle
Requires
- php: >=8.3
- easycorp/easyadmin-bundle: ^5.2
- oliverde8/php-etl-bundle: ^2.1
Requires (Dev)
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-03 07:33:36 UTC
README
The Php etl easy admin bundle allows the usage of Oliver's PHP Etl library in symfony. Add's an integration to easy admin as well in order to see a list of the executions:
And also a details on each execution. Logs of each execution and files processed in each execution can also be found here
Also provides a dashboard to see current state.
Installation
-
Install using composer
-
in
/config/create a directoryetl -
Enable bundle:
Oliverde8\PhpEtlEasyAdminBundle\Oliverde8PhpEtlEasyAdminBundle::class => ['all' => true],
- Add to easy admin
// EtlDashboardController exposes the stats page via #[AdminRoute(name: 'etl_execution_dashboard')]. // EasyAdmin prefixes it with your Dashboard's own route name, e.g. "admin_etl_execution_dashboard". yield MenuItem::linkToRoute("Job Dashboard", 'fas fa-chart-bar', "admin_etl_execution_dashboard"); yield MenuItem::linkToCrud('Etl Executions', 'fas fa-list', EtlExecution::class);
- Enable routes. The execution detail page's live graph reads its data from the php-etl bundle's endpoints, so its routes must be loaded too. Put both behind your admin firewall.
etl_bundle: resource: '@Oliverde8PhpEtlEasyAdminBundle/Controller' type: attribute prefix: /admin oliverde8_php_etl_observability: resource: '@Oliverde8PhpEtlBundle/Controller/' type: attribute prefix: /admin
- Install the assets (the graph's JS/CSS are shipped by the php-etl bundle):
bin/console assets:install public
Security:
EtlExecutionVotercurrently grants access to everyone. Access to executions, their graph/state/log endpoints and their live updates is only protected by your own firewall /access_controlrules, so make sure/admin(or whatever prefix you use) is restricted.
- 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
- 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"]
- Optional: Real-time execution graph. Without anything extra the graph on the execution detail page
polls while an execution is running and is static once it is finished. Install and configure
symfony/mercure-bundleto get live updates pushed instead; the php-etl bundle detects it automatically. Live updates only apply to executions run asynchronously (step 7).
composer require symfony/mercure-bundle
Usage
Please check the documentation of the Php Etl Bundle
For more information on how the etl works and how to create operations check the Php Etl Documentation
TODO
- Add possibility to create etl chains definitions from the interface.


