Download the PHP package oliverde8/php-etl-bundle without Composer

On this page you can find all versions of the php package oliverde8/php-etl-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-etl-bundle

PHP Etl Bundle

Scrutinizer Code Quality Build Status Code Coverage

The Php etl bundle allows the usage of Oliver's PHP Etl library in symfony.

You should also check the PHP ETL's Easy Admin Bundle to have interfaces.

Installation

  1. Install using composer

  2. in /config/ create a directory etl

  3. Enable bundle:

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

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

Usage

Creating an ETL chain

First read the documentation of the 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:

Executing a chain

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

Get a definition

Observability — live execution graph

The bundle exposes a framework-agnostic live execution graph: the chain's topology plus per-operation state (items in/out, time, async in flight) and a streaming log tail. It is designed to be reused by any Symfony frontend (EasyAdmin, Sylius, a custom admin) — all the logic lives here, the frontend only mounts routes, loads the assets and renders one Twig partial.

How it works

Wiring it into a frontend

  1. Mount the routes (any prefix; put them behind your admin firewall):

  2. Publish the assets: bin/console assets:install public.
  3. Load the assets on the page that shows the graph and render the partial:

    (The EasyAdmin bundle does exactly this for you on the execution detail page.)

Real-time updates (optional Mercure)

The graph degrades gracefully by design:

Setup Behaviour
symfony/mercure-bundle installed + hub configured live push over Mercure (SSE)
running execution, no Mercure polls /state and /logs
finished execution fully static graph from persisted state

Nothing is required to get the static/poll graph. Install symfony/mercure-bundle to light up real-time — the bundle then auto-registers a Mercure publisher (MercureExecutionStatePublisher) and streams state + logs from the worker as the chain runs; otherwise a no-op publisher is used. Pass the hub's public URL + topic to the partial via a mercure: {url, topic} variable to enable the client side.

Real-time only applies to executions run asynchronously (a messenger worker); with the sync transport the chain runs in-request and the graph is static.

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:

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

For more information on how the etl works and how to create operations check the Php Etl Documentation


All versions of php-etl-bundle with dependencies

PHP Build Version
Package Version
Requires php Version >=8.3
oliverde8/php-etl Version ^2.1
symfony/framework-bundle Version ^7.4|^8.0
symfony/messenger Version ^7.4|^8.0
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package oliverde8/php-etl-bundle contains the following files

Loading the files please wait ...