Skip to content

Instantly share code, notes, and snippets.

@ecourtial
Created June 15, 2020 09:50
Show Gist options
  • Save ecourtial/156c7dc70847d67443ffcb3ce66b7882 to your computer and use it in GitHub Desktop.
Save ecourtial/156c7dc70847d67443ffcb3ce66b7882 to your computer and use it in GitHub Desktop.
Test Sample with wizaplace/php-etl
<?php
declare(strict_types=1);
namespace App\Service;
use Wizaplace\Etl\Etl;
use Wizaplace\Etl\Extractors\Csv as CsvExtractor;
use Wizaplace\Etl\Transformers\RenameColumns;
use Wizaplace\Etl\Loaders\CsvLoader;
class DummyService
{
/** @var \Wizaplace\Etl\Etl */
private $etl;
/** @var \Wizaplace\Etl\Extractors\Csv */
private $csvExtractor;
/** @var \Wizaplace\Etl\Transformers\RenameColumns */
private $renameColumns;
/** @var \Wizaplace\Etl\Loaders\CsvLoader */
private $csvLoader;
public function __construct(
Etl $etl,
CsvExtractor $csvExtractor,
RenameColumns $renameColumns,
CsvLoader $csvLoader
) {
$this->etl = $etl;
$this->csvExtractor = $csvExtractor;
$this->renameColumns = $renameColumns;
$this->csvLoader = $csvLoader;
}
public function process(): int
{
$inputCsvFile = 'assets/tuto/customers.csv';
$outputCsvFile = 'assets/tuto/output.csv';
$this->etl
->extract(
$this->csvExtractor,
$inputCsvFile,
[
'throwError' => true,
'delimiter' => ';',
'columns' => ['id', 'email']
]
)
->transform($this->renameColumns, ['columns' => ['email' => 'courriel']])
->load($this->csvLoader, $outputCsvFile)
->run();
return 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment