Merge "Improve the grammar of tooltip-search-go"
[lhc/web/wiklou.git] / includes / libs / ProcessCacheLRU.php
index ce97142..b55ff9d 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @ingroup Cache
  */
+use Wikimedia\Assert\Assert;
 
 /**
  * Handles per process caching of items
 class ProcessCacheLRU {
        /** @var Array */
        protected $cache = array(); // (key => prop => value)
+
        /** @var Array */
        protected $cacheTimes = array(); // (key => prop => UNIX timestamp)
 
        protected $maxCacheKeys; // integer; max entries
 
        /**
-        * @param $maxKeys integer Maximum number of entries allowed (min 1).
+        * @param int $maxKeys Maximum number of entries allowed (min 1).
         * @throws UnexpectedValueException When $maxCacheKeys is not an int or =< 0.
         */
        public function __construct( $maxKeys ) {
@@ -46,9 +48,9 @@ class ProcessCacheLRU {
         * This will prune the cache if it gets too large based on LRU.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
-        * @param $prop string
-        * @param $value mixed
+        * @param string $key
+        * @param string $prop
+        * @param mixed $value
         * @return void
         */
        public function set( $key, $prop, $value ) {
@@ -67,15 +69,16 @@ class ProcessCacheLRU {
        /**
         * Check if a property field exists for a cache entry.
         *
-        * @param $key string
-        * @param $prop string
-        * @param $maxAge float Ignore items older than this many seconds (since 1.21)
+        * @param string $key
+        * @param string $prop
+        * @param float $maxAge Ignore items older than this many seconds (since 1.21)
         * @return bool
         */
        public function has( $key, $prop, $maxAge = 0.0 ) {
                if ( isset( $this->cache[$key][$prop] ) ) {
                        return ( $maxAge <= 0 ||
-                               ( microtime( true ) - $this->cacheTimes[$key][$prop] ) <= $maxAge );
+                               ( microtime( true ) - $this->cacheTimes[$key][$prop] ) <= $maxAge
+                       );
                }
 
                return false;
@@ -86,13 +89,14 @@ class ProcessCacheLRU {
         * This returns null if the property is not set.
         * If the item is already set, it will be pushed to the top of the cache.
         *
-        * @param $key string
-        * @param $prop string
+        * @param string $key
+        * @param string $prop
         * @return mixed
         */
        public function get( $key, $prop ) {
                if ( isset( $this->cache[$key][$prop] ) ) {
-                       $this->ping( $key ); // push to top
+                       // push to top
+                       $this->ping( $key );
                        return $this->cache[$key][$prop];
                } else {
                        return null;
@@ -100,9 +104,9 @@ class ProcessCacheLRU {
        }
 
        /**
-        * Clear one or several cache entries, or all cache entries
+        * Clear one or several cache entries, or all cache entries.
         *
-        * @param $keys string|Array
+        * @param string|array $keys
         * @return void
         */
        public function clear( $keys = null ) {
@@ -120,14 +124,14 @@ class ProcessCacheLRU {
        /**
         * Resize the maximum number of cache entries, removing older entries as needed
         *
-        * @param $maxKeys integer
+        * @param int $maxKeys
         * @return void
         * @throws UnexpectedValueException
         */
        public function resize( $maxKeys ) {
-               if ( !is_int( $maxKeys ) || $maxKeys < 1 ) {
-                       throw new UnexpectedValueException( __METHOD__ . " must be given an integer >= 1" );
-               }
+               Assert::parameterType( 'integer', $maxKeys, '$maxKeys' );
+               Assert::parameter( $maxKeys >= 1, '$maxKeys', 'must be >= 1' );
+
                $this->maxCacheKeys = $maxKeys;
                while ( count( $this->cache ) > $this->maxCacheKeys ) {
                        reset( $this->cache );
@@ -140,7 +144,7 @@ class ProcessCacheLRU {
        /**
         * Push an entry to the top of the cache
         *
-        * @param $key string
+        * @param string $key
         */
        protected function ping( $key ) {
                $item = $this->cache[$key];