1. Go to this page and download the library: Download flyokai/amp-data-pipeline 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/ */
flyokai / amp-data-pipeline example snippets
use Flyokai\AmpDataPipeline\{ArraySource, DataItem, ProcessorAbstract, ProcessorComposition};
final class Upper extends ProcessorAbstract
{
protected function processDataItem(DataItem $item): void
{
$item->setData('value', strtoupper($item->getData('value')));
$this->releaseDataItem($item);
}
}
$source = new ArraySource([
DataItem::fromArray(['value' => 'alice'], []),
DataItem::fromArray(['value' => 'bob'], []),
]);
$pipeline = new ProcessorComposition([new Upper()]);
$pipeline->setSource($source);
$pipeline->run(function (DataItem $item) {
echo $item->getData('value'), "\n"; // ALICE, BOB
});
new MyProcessor()
->setConcurrency(8)
->setBufferSize(16);
$pipeline = new ProcessorComposition([
new PrepareProcessor(),
new ValidateProcessor(),
new SaveProcessor(),
]);
$pipeline->setSource(new ArraySource($rows));
$pipeline->run(/* optional itemCallback */);
use Flyokai\AmpDataPipeline\Batch\BatchProcessor;
$batcher = new BatchProcessor(
batchProcessorFactory: fn() => new SaveBatchProcessor(),
resultHandlerFactory: fn() => new ResultRouter(),
batchSize: 100,
ordered: false, // true → preserve order across batches
groupResults: false, // true → merge batch results into one DataItem
throwIfUnhandled: true,
);
use Flyokai\AmpDataPipeline\DataCast\MultiCastProcessor;
$cast = new MultiCastProcessor(
castProcessorFactories: [
fn() => new IndexInOpensearch(),
fn() => new WriteToCache(),
],
groupResults: true,
groupBufferSize: 10,
);
interface DataItemHandler {
public function canHandle(DataItem $item): bool;
public function handle(DataItem $item): Future;
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.