Ejemplo n.º 1
0
<?php

include "Manticorp/ProgressUpdater.php";
set_time_limit(600);
$options = array('filename' => __DIR__ . DIRECTORY_SEPARATOR . 'progress.json', 'autoCalc' => True, 'totalStages' => 4);
$pu = new Manticorp\ProgressUpdater($options);
$stageOptions = array('name' => 'Foo 1', 'message' => 'Some Message', 'totalItems' => 100);
$pu->nextStage($stageOptions);
for ($i = 0; $i <= $stageOptions['totalItems']; $i++) {
    usleep(50 * 1000);
    $pu->incrementStageItems(1, true);
}
$stageOptions = array('name' => 'Foo 2', 'message' => 'Another Message', 'totalItems' => 50);
$pu->nextStage($stageOptions);
for ($i = 0; $i <= $stageOptions['totalItems']; $i++) {
    usleep(50 * 1000);
    $pu->incrementStageItems(1, true);
}
$stageOptions = array('name' => 'Spam 1', 'message' => 'This is eggs (check out the messages)', 'totalItems' => 200);
$pu->nextStage($stageOptions);
for ($i = 0; $i <= $stageOptions['totalItems']; $i++) {
    usleep(50 * 1000);
    $pu->setStageMessage("Processing Item {$i}");
    $pu->incrementStageItems(1, true);
}
$stageOptions = array('name' => 'Banana', 'message' => 'Peel', 'totalItems' => 150);
$pu->nextStage($stageOptions);
for ($i = 0; $i <= $stageOptions['totalItems']; $i++) {
    usleep(50 * 1000);
    $pu->incrementStageItems(1, true);
}
Ejemplo n.º 2
0
<?php

include "Manticorp/ProgressUpdater.php";
set_time_limit(600);
$options = array('filename' => __DIR__ . DIRECTORY_SEPARATOR . 'progress.json', 'autoCalc' => True, 'totalStages' => 1);
$pu = new Manticorp\ProgressUpdater($options);
$stageOptions = array('name' => 'This AJAX process takes a long time', 'message' => 'But this will keep the user updated on it\'s actual progress!', 'totalItems' => 100);
$pu->nextStage($stageOptions);
for ($i = 0; $i <= 100; $i++) {
    usleep(100 * 1000);
    $pu->incrementStageItems(1, True);
}
$pu->totallyComplete();
 /**
  * @test
  * @depends testObjectCreated
  * @covers ::incrementStageItems
  */
 public function testAutoCalcSetting()
 {
     // Arrange
     $options = array('lineBreak' => "\n", 'filename' => __DIR__ . DIRECTORY_SEPARATOR . 'testFilenameSetting3.txt', 'totalStages' => 1, 'autocalc' => True);
     $pu = new \Manticorp\ProgressUpdater($options);
     $stageOptions = array('name' => 'Foo', 'message' => 'Bar', 'totalItems' => 100, 'rate' => 1);
     $pu->nextStage($stageOptions);
     sleep(0.5);
     $pu->incrementStageItems();
     sleep(0.5);
     $pu->incrementStageItems();
     $stage = $pu->getStage();
     $this->assertGreaterThanOrEqual(2, $stage->rate);
     $this->assertGreaterThanOrEqual(0.02, $stage->pcComplete);
     unlink($options['filename']);
 }