Download the PHP package code-rhapsodie/ezdataflow-bundle without Composer

On this page you can find all versions of the php package code-rhapsodie/ezdataflow-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 ezdataflow-bundle

Code Rhapsodie eZ Dataflow Bundle

EzDataflowBundle is a bundle integrating Code Rhapsodie Dataflow bundle into Ibexa 4.0+. Dataflows can be piloted from an interface integrated into the Ibexa backoffice. EzDataflow bundle is intended to manage content imports from external data sources.

Note: before using this bundle, please read the Code Rhapsodie Dataflow bundle documentation.

Command line notice: When you use Dataflow commands, use --siteaccess instead of --connection expect for code-rhapsodie:dataflow:dump-schema command.

eZ Dataflow Version Ibexa Content Version Status
4.x 4.x :white_check_mark: Maintened
3.x 3.x :white_check_mark: Maintened
2.x eZ Platform 2.5 :x: Not maintened
1.x eZ Platform 2.5 :x: Not maintained

User Interface (UI)

The UI lets you create workflow processes from any defined DataflowTypes, and set options to each.

Processes can be set to run either:

Installation

Step 1: Install the bundle via composer

Step 2: Enable the bundle

Note: The loading order between the Dataflow bundle and Ez Dataflow bundle is important. Dataflow must be loaded first.

Add those two lines in the config/bundles.php file:

Step 3: Import bundle routing file

Step 4: Update the database schema

Please refer to the Code-Rhapsodie Dataflow Bundle installation guide.

Step 5: Schedule the job runner

Please refer to the Code-Rhapsodie Dataflow Bundle Queue section.

Configuration

By default, the ContentWriter will publish contents using the admin user. If you want to use another user (with sufficient permissions), you can configure it like this:

Define your Dataflow

Before using the admin UI to manage your dataflows, you need to define them. Please refer to Code-Rhapsodie Dataflow type documentation.

Use the ContentWriter

To add or update Ibexa contents, you can use the CodeRhapsodie\EzDataflowBundle\Writer\ContentWriter writer.

Step 1: Inject the dependencies and add the writer

Inject the ContentWriter service into the constructor of your DataflowType and add the content writer into the writer list like this:

Step 2: Add a step for prepare the content

To process Ibexa contents into your Dataflow, you need to transform the data into ContentCreateStructure or ContentUpdateStructure objects. in order to respectively create or update contents.

But, in order to determine if the content already exists or not, you first need to look up for it.

One way is to use the remote id to search for the content.

In the following example, the remote id pattern is article-<id> with the <id> replaced by the data id provided by the reader. To check if the content exists or not, I use the service ContentService provided by Ibexa.

The step is added as an anonymous function and has 3 types of return values:

For the new content, you must provide one or more "parent location id" as the 3rd argument of the ContentCreateStructure constructor.

In this example, I have added a new folder to store all articles.

To get the location id of the parent Ibexa content, go to the admin UI and select the future parent content, click on the details tabs, and read the "Location id" like this:

Note: the best practice is to define this parent id in your parameters.yml file or your .env.local file for each execution environment.

This example uses ContentStructureFactory to check if the content exists and returns the adequate ContentStrucure to pass to the content writer.

Use the NotModifiedContentFilter

When updating contents, you might want to ignore contents where the update would not result in any actual changes in fields values. In that case, you can add the NotModifiedContentFilter as one of your steps.

This filter compares each field value in the ContentUpdateStructure received to the fields values in the existing content object. If all values are identical, this filter will return false, otherwise, the ContentUpdateStructure will be returned as is.

Not all field types are supported by this filter. Il a field type is not supported, values will be assumed different. If your dataflow is dealing with content types containing unsupported field types, it is better to simply not use the NotModifiedContentFilter to prevent unnecessary overhead.

Supported field types

Add custom field comparator

If you want to add support for a field type, simply create your own comparator.

Admin UI

Access to the eZ Dataflow UI

You can access the eZ Dataflow administration UI from your Ibexa admin back-office.

  1. Click to "Admin"
  2. Click to "eZ Dataflow"

Scheduled dataflow list

When you access to the eZ Dataflow administration UI, you going here:

  1. Scheduled dataflow list
  2. Button to add a new scheduled dataflow
  3. Tools available for each scheduled dataflow. In order from left to right :
    1. Display the history for this dataflow schedule
    2. Edit this dataflow schedule
    3. Enable/Disable this dataflow schedule
    4. Delete this dataflow schedule

Note: You can define more than one schedule for any given dataflow.

Add a new schedule

Go to the eZ Dataflow admin, and click on the "+" orange button.

In the new popin, fill in the fields:

  1. Type the Dataflow schedule name
  2. Select the Dataflow type. The list is automatically generated from the list of Symfony services with the tags coderhapsodie.dataflow.type. If your dataflow type is not present, check the configuration
  3. Type here the Dataflow options. Basic expected format: one option per line and option name and value separated with :. For more complex options, the whole YAML format is supported.
  4. Type here the frequency. The value must be compatible with the the PHP strtotime function.
  5. Choose the date and time of the first job.
  6. Check if you want to run this Dataflow.

Finally, click on the "Create" button.

Read the history

When you click on the "History" tab in the eZ Dataflow admin UI, the job history for all Dataflow configured and executed is displayed.

  1. The history list
  2. This column shows the number of objects that have been processed.
  3. Click on the question mark to display the job details.

Details of one scheduled job:

One-shot job

If you don't want to run a Dataflow periodically, you can add a single execution at the time and date that you want.

Go to the eZ Dataflow admin UI and click on the "Oneshot" tab.

  1. This button allows you to define the one-shot job (see below).
  2. This column shows the number of objects that have been processed.
  3. Click on the question mark to display the job details.

Details of one-shot job:

Here the job has fail.

Add a one-shot job

Go to the eZ Dataflow admin UI and click on the "Oneshot" tab. Click on the "+" orange button to open the adding popin.

  1. Type the Dataflow job name
  2. Select the Dataflow type. The list is automatically generated from the list of Symfony services with the tags coderhapsodie.dataflow.type. If your dataflow type is not present, check the configuration
  3. Type here the Dataflow options. Basic expected format: one option per line and option name and value separated with :. For more complex options, the whole YAML format is supported.
  4. Choose the date and time of the first job.

Finally, click on the "Create" button.

Rights

If a non-administrator user needs read-only access to the dataflow interface, add the Setup / Administrate and eZ Dataflow / View policies in one of their roles.

Issues and feature requests

Please report issues and request features at https://github.com/code-rhapsodie/ezdataflow-bundle/issues.

Contributing

Contributions are very welcome. Please see CONTRIBUTING.md for details. Thanks to everyone who has contributed already.

License

This package is licensed under the MIT license.


All versions of ezdataflow-bundle with dependencies

PHP Build Version
Package Version
Requires php Version ^7.4||^8.0
code-rhapsodie/dataflow-bundle Version ^3.0||^4.0
http-interop/http-factory-guzzle Version ^1.2
ibexa/admin-ui Version ^4.0
ibexa/core Version ^4.0
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 code-rhapsodie/ezdataflow-bundle contains the following files

Loading the files please wait ....