Dataflow 2.2

Crédit photo : pxfuel.com

le mercredi 10 février 2021

Dataflow est un bundle Symfony permettant la simplification et la gestion de tâches de traitement de données (import, export, transfert interne à l'application) dans vos projets d'application web basé sur Symfony. 

Il arrive parfois qu'un traitement rencontre un dysfonctionnement. Le diagnostic peux être particulièrement compliqué si les données traitées sont volatiles.

Dans la version 2.2 de Dataflow, nous avons ajouté un journal pour vous permettre d'y inscrire les événements liés à votre traitement.

Il est automatiquement disponible dans la propriété logger de votre objet PHP DataflowType  si vous étendez la classe CodeRhapsodie\DataflowBundle\DataflowType\AbstractDataflowType .

Dans le cas contraire, implémenter dans votre classe DataflowType  l'interface Psr\Log\LoggerAwareInterface et le logger sera automatiquement injecté.

Vous pourrez ensuite l'injecter dans votre lecteur, vos étapes et vos écrivains (writer).

//src/DataflowType/ImportInformationFromWebSiteType.php

<?php

namespace My\App\Namespace\DataflowType;

use CodeRhapsodie\DataflowBundle\DataflowType\AbstractDataflowType;
use CodeRhapsodie\DataflowBundle\DataflowType\DataflowBuilder;

class ImportInformationFromWebSiteType extends AbstractDataflowType
{
    protected function buildDataflow(DataflowBuilder $builder, array $options): void
    {
        $this->httpClient->setLogger($this->logger);
        $this->notModifiedContentFilter->setLogger($this->logger);
        $this->writer->setLogger($this->logger);

        $builder->setReader($this->httpClient->read())
            ->addStep($this->transformer)
            ->addStep($this->notModifiedContentFilter)
            ->addWriter($this->writer);
    }
}

La particularité de ce logger est que toutes les informations seront automatiquement sauvegardées en base de données avec les informations de l'exécution de votre Dataflow.