PHP code example of jojo1981 / polling

1. Go to this page and download the library: Download jojo1981/polling 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/ */

    

jojo1981 / polling example snippets




use Jojo1981\Polling\Checker\PollResultChecker;
use Jojo1981\Polling\Executor\PollExecutor;
use Jojo1981\Polling\Poller;
use Jojo1981\Polling\Result\PollResult;
use Jojo1981\Polling\Value\PollCount;
use Jojo1981\Polling\Value\UnsignedInteger;
use Jojo1981\TypedCollection\Collection;

eturn string
     */
    static function (string $text1, string $text2, int $number, Collection $previousResults, int $currentPollCount): string {
        // order of arguments: start polling arguments (when given), executor arguments (when given), $previousResults and $currentPollCount.

        return $currentPollCount === 3 ? 'This is a success result :)' : 'We are not yet there :(';
    },
    [1] // optionally the default arguments which will be given to the poll executor callback
);
$pollResultChecker = new PollResultChecker(
    /**
     * @param string $text1
     * @param string $text2
     * @param bool $number
     * @param string $result
     * @param Collection|PollResult[] $previousResults
     * @param int $currentPollCount
     * @return bool
     */
    static function (string $text1, string $text2, bool $number, string $result, Collection $previousResults, int $currentPollCount): bool {
        // order of arguments: start polling arguments (when given), executor arguments (when given), $previousResults and $currentPollCount.

        return 'This is a success result :)' === $result;
    },
    [1] // optionally the default arguments which will be given to the poll result checker callback
);

// poll delay is expressed in microseconds, so poll max 5 times with in between 5 seconds delay.
$poller = new Poller($pollExecutor, $pollResultChecker, null, new UnsignedInteger(5000000), new PollCount(5));
$finalPollResult = $poller->startPolling(['text1', 'text2']); // start polling with optionally some default arguments

$finalPollResult->getCount(); // Will return the number of poll retries including the first one. Value: 3 in this case.
$finalPollResult->isSuccess(); // Will return true when polling is succeeded. Value true in this case.
$finalPollResult->isFailed(); // Will return true when polling has been failed. Value false in this case.
$finalPollResult->getResult(); /// Will return the last poll result. Value 'This is a success result :)' in this case.