eZ Dataflow 2.2

Crédit photo : pxfuel.com

Nouveauté dans eZ Dataflow 2.2

le jeudi 12 novembre 2020

Dataflow est un projet libre mis en œuvre par Code Rhapsodie dont le but est de gérer facilement les flux d'entrée et de sortie dans votre projet Symfony.

Son intégration au CMS eZ Platform permet de remplacer l'ancienne extension SQLi Import utilisé sur eZ Publish.

La version 2.2 a récemment été publiée et elle apporte un filtre prêt à l'emploi pour la plupart des cas.

Ce filtre évitera la sauvegarde des contenus eZ qui n'ont pas été modifiés depuis la dernière exécution du flux.

Voici la liste des champs (fields/attributs) nativement gérés par le filtre : 

  • ezstring
  • ezauthor
  • ezboolean
  • ezcountry
  • ezdate
  • ezdatetime
  • ezemail
  • ezfloat
  • ezisbn
  • ezobjectrelation
  • ezobjectrelationlist
  • ezkeyword
  • ezselection
  • eztext
  • eztime
  • eztags
  • novaseometas
  • ezurl
  • ezmatrix
  • ezgmaplocation
  • ezrichtext

Si le content type du flux contient uniquement des champs de ce type, alors le filtre peut être utilisé nativement. Dans le cas contraire, vous allez devoir ajouter un service de comparaison de champ.

Note: L'utilisation du filtre avec un content type ayant des champs non gérés est contre productif. Le temps de traitement va s'allonger car les contenus seront comparés alors qu'un type de champ non géré est considéré comme différent et provoquera la mise à jour systématique du contenu.

   
<pre><?php

use CodeRhapsodie\EzDataflowBundle\Core\FieldComparator\AbstractFieldComparator;
use eZ\Publish\Core\FieldType\Value;
//[...]

class MyFieldComparator extends AbstractFieldComparator
{
    //[...]
    protected function compareValues(Value $currentValue, Value $newValue): bool
    {
        // Return true if values are identical, false if values are different.
    }
}</pre>
   

Puis l'enregistrer en tant que service Symfony avec le tag coderhapsodie.ezdataflow.field_comparator et le type de champs traité par votre comparateur.

   
<pre># Service declaration
    App\FieldComparator\MyFieldComparator:
        parent: 'CodeRhapsodie\EzDataflowBundle\Core\FieldComparator\AbstractFieldComparator'
        tags:
            - { name: 'coderhapsodie.ezdataflow.field_comparator', fieldType: 'my_field_type_identifier' }</pre>
   

Votre service est prêt, vous pouvez utiliser le filtre dans votre flux.

A vous de jouer !

Une question ? Besoin d'aide ? Contactez-nous ! Nous sommes à votre disposition pour vous accompagner dans toutes les étapes de votre projet.

Crédit photo : pxfuel.com