PHP code example of trkisf2 / remote-collection-stream
1. Go to this page and download the library: Download trkisf2/remote-collection-stream 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/ */
trkisf2 / remote-collection-stream example snippets
$stream = new Stream();
$campaignsCollectionGenerator = $stream->stream(
new StreamConfiguration(self::BATCH_FETCH_SIZE_CAMPAIGNS),
function ($offset, $limit) use ($job) {
return $this->campaigns->getAll($job, $offset, $limit);
}
);
/** @var Chunk $campaignChunk */
foreach ($this->chunksProvider->streamCampaigns($job) as $campaignChunk) {
try {
echo $campaignChunk->key() . "\n";
if ($this->chunksStorage->storeChunk($campaignChunk)) {
$this->campaignQueue->insert($campaignChunk->serializedValue());
}
} catch (StoreChunkException $exception) {
// Retry the process later
}
}
/**
* Continuously yields Campaign Chunk objects.
*
* @param Job $job
*
* @return \Generator
*/
public function streamCampaigns(Job $job): \Generator
{
$stream = new Stream();
$campaignsCollectionGenerator = $stream->stream(
new StreamConfiguration(self::BATCH_FETCH_SIZE_CAMPAIGNS),
function ($offset, $limit) use ($job) {
return $this->campaigns->getAll($job, $offset, $limit);
}
);
foreach ($campaignsCollectionGenerator as $collection) {
yield new Chunk($collection);
}
}
/**
* @param Job $job
* @param int $offset
* @param int $limit
*
* @return LegacyCampaignsCollection
*/
public function getAll(Job $job, int $offset, int $limit) : LegacyCampaignsCollection;
class DummyCollectionRepository
{
private $allElements = [];
/**
* @param int $elementsCount
*/
public function __construct(int $elementsCount)
{
for ($i = 1; $i <= $elementsCount; $i++) {
$this->allElements[] = $i;
}
}
/**
* @param int $offset
* @param int $limit
*
* @return DummyCollection
*/
public function getAll(int $offset, int $limit): DummyCollection
{
$collection = new DummyCollection();
$collectionChunk = array_slice($this->allElements, $offset, $limit);
foreach ($collectionChunk as $element) {
$collection->addElement($element);
}
return $collection;
}
}
function ($offset, $limit) use ($job) {
return $this->campaigns->getAll($job, $offset, $limit);
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.