1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
<?php
namespace Wikimedia\WRStats;
/**
* @since 1.39
* @newable
*/
class LimitCondition {
/** @var int The maximum number of events */
public $limit;
/** @var float|int The number of seconds over which the number of events may occur */
public $window;
/**
* @param int|float|string $limit The maximum number of events
* @param int|float|string $window The number of seconds over which the
* number of events may occur
*/
public function __construct( $limit, $window ) {
$this->limit = (int)$limit;
$this->window = +$window;
if ( $this->window <= 0 ) {
throw new WRStatsError( 'Condition window must be positive' );
}
}
/**
* Get the condition as a number of events per second
*
* @return float|int
*/
public function perSecond() {
return $this->limit / $this->window;
}
}
|