public function __construct() { $iCallLimit = BASECAMP_API_CALL_LIMIT; $iNow = time(); if (self::$_iStartTime == 0) { self::$_iStartTime = time(); } else { if ($iNow - self::$_iStartTime < $iCallLimit && self::$_iCounter >= $iCallLimit || self::$_iCounter >= $iCallLimit) { throw new XBasecampLimitException("Exceeded limit requests (" . $iCallLimit . " per " . $iSeconds . " seconds)"); } else { if ($iNow - self::$_iStartTime > self::iSeconds) { self::$_iCounter = 0; self::$_iStartTime = time(); } } } self::$_iCounter++; self::$_iElapsedTime = $iNow - self::$_iStartTime; }