1. Go to this page and download the library: Download slayerbirden/dataflow library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
slayerbirden / dataflow example snippets
use Doctrine\DBAL\DriverManager;
use SlayerBirden\DataFlow\Emitter\BlackHole;
use SlayerBirden\DataFlow\PipelineBuilder;
use SlayerBirden\DataFlow\Writer\Dbal\UpdateStrategy\UniqueIndexStrategy;
use SlayerBirden\DataFlow\Writer\Dbal\Write;
use SlayerBirden\DataFlow\Writer\Dbal\WriterUtility;
# bootstrap
$connection = DriverManager::getConnection([
'url' => 'mysql://test-user:testpwd@localhost:4486/foo?charset=UTF8',
]);
// this is just a utility class to "cache" schema info
$utility = new WriterUtility($connection);
$dbWrite = new Write(
'users_write', // pipe ID for reporting
$connection, // DBAL connection
'users', // db table name
$utility, // utility class
new UniqueIndexStrategy('users', $utility), // update or insert will depend on unique fields in the table
$this->emitter
);
$emitter = new BlackHole();
# pipeline
$pipeline = (new PipelineBuilder($emitter))
->addSection($dbWrite)
->build();
use SlayerBirden\DataFlow\Plumber;
use SlayerBirden\DataFlow\Provider\Csv;
...
$file = new \SplFileObject(__DIR__ . '/users.csv');
$file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::READ_AHEAD | \SplFileObject::SKIP_EMPTY);
(new Plumber(new Csv('users_file', $file), $pipeline, $emitter))->pour();
$emitter = new class implements \SlayerBirden\DataFlow\EmitterInterface
{
public function emit(string $event, ...$args): void
{
echo $event, ' ==> ', implode(', ', $args), PHP_EOL;
}
};
use SlayerBirden\DataFlow\DataBagInterface;
$pipeline = (new PipelineBuilder($emitter))
->map('name', new class implements MapperCallbackInterface
{
public function __invoke($value, DataBagInterface $dataBag)
{
return $dataBag['first'] . ' ' . $dataBag['last'];
}
})
->addSection($dbWrite)
->build();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.