1. Go to this page and download the library: Download pyrsmk/streetfight 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/ */
pyrsmk / streetfight example snippets
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Match\AutoTimedMatch;
use StreetFight\Report\Report;
use StreetFight\Report\PercentageReport;
use StreetFight\Report\DescSortedReport;
$report =
// Sort the report in descending direction
new DescSortedReport(
// Convert the seconds report to percentage
new PercentageReport(
// Create a report to process match results
new Report(
// Create a match to process the benchmark for a certain time
// (here, AutoTimedMatch will compute automatically the time of the match)
// (see below for types of match)
new AutoTimedMatch(
// A typical round...
new Round(
// ...with a challenger list
new ChallengerList(
new Challenger('Pre-increment', function () {
$i = 0;
++$i;
}),
new Challenger('Post-increment', function () {
$i = 0;
$i++;
})
)
)
)
)
)
);
var_dump($report->asPercentages());
/*
[
'Post-increment' => 100,
'Pre-increment' => 98.84
]
*/
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Match\Match;
new Match(
100, // Will iterate 100 times
new Round(
new ChallengerList(
new Challenger('Pre-increment', function () {
$i = 0;
++$i;
}),
new Challenger('Post-increment', function () {
$i = 0;
$i++;
})
)
)
)
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Match\TimedMatch;
new TimedMatch(
5000, // Will run for 5 seconds at least
new Round(
new ChallengerList(
new Challenger('Pre-increment', function () {
$i = 0;
++$i;
}),
new Challenger('Post-increment', function () {
$i = 0;
$i++;
})
)
)
)
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Match\AutoTimedMatch;
// The recommended and simplest way to run the benchmark
new AutoTimedMatch(
new Round(
new ChallengerList(
new Challenger('Pre-increment', function () {
$i = 0;
++$i;
}),
new Challenger('Post-increment', function () {
$i = 0;
$i++;
})
)
)
)
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Match\AutoTimedMatch;
use StreetFight\Report\Report;
use StreetFight\Report\MicrosecondsReport;
use StreetFight\Report\AscSortedReport;
// Sort the report
new AscSortedReport(
// Format the report results in microseconds
new MicrosecondsReport(
// The main Report object
new Report(
new AutoTimedMatch(
new Round(
new ChallengerList(
new Challenger('Pre-increment', function () {
$i = 0;
++$i;
}),
new Challenger('Post-increment', function () {
$i = 0;
$i++;
})
)
)
)
)
)
)
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Hook\Hook;
new Round(
new ChallengerList(
new Challenger('file_put_contents (overwrite)', function () {
file_put_contents('foo.txt', 'bar');
}),
new Challenger('fwrite (overwrite)', function () {
$f = fopen('foo.txt', 'w');
fwrite($f, 'bar');
fclose($f);
}),
new Challenger('file_put_contents (append)', function () {
file_put_contents('foo.txt', 'bar', FILE_APPEND);
}),
new Challenger('fwrite (append)', function () {
$f = fopen('foo.txt', 'a');
fwrite($f, 'bar');
fclose($f);
}),
),
// Set a hook that will be run BEFORE each task of each iteration
new Hook(function () {
touch('foo.txt');
}),
// Set a hook that will be run AFTER each task of each iteration
new Hook(function () {
unlink('foo.txt');
})
)
use StreetFight\Challenger\Challenger;
use StreetFight\Challenger\ChallengerList;
use StreetFight\Round\Round;
use StreetFight\Hook\Hook;
$data = [
'filename' => 'foo.txt',
'content' => 'bar'
];
new Round(
new ChallengerList(
new Challenger('file_put_contents (overwrite)', function () use ($data) {
file_put_contents($data['filename'], $data['content']);
}),
new Challenger('fwrite (overwrite)', function () use ($data) {
$f = fopen($data['filename'], 'w');
fwrite($f, $data['content']);
fclose($f);
}),
new Challenger('file_put_contents (append)', function () use ($data) {
file_put_contents($data['filename'], $data['content'], FILE_APPEND);
}),
new Challenger('fwrite (append)', function () use ($data) {
$f = fopen($data['filename'], 'a');
fwrite($f, $data['content']);
fclose($f);
}),
),
new Hook(function () {
touch($data['filename']);
}),
new Hook(function () {
unlink($data['filename']);
})
)
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.