_limit = $limit; } /** * Whether the history has reached its limit of entries. */ public function isFull() { return count($this->_data) >= $this->_limit; } public function hasWrites() { return (bool) array_sum($this->_data); } public function isFullWithNoWrites() { return $this->isFull() && !$this->hasWrites(); } /** * Logs the return value from a write call. * Returns the input value. */ public function log($write) { if ($this->isFull()) { array_shift($this->_data); } $this->_data[] = (int) $write; return $write; } }