title: Implementing \Psr\Cache\CacheItemPoolInterface results in fatal error
body: <p>I'm working an implementation of PHP-FIG's PSR-6 caching recommendation but I'm getting a fatal error that I'm not sure how to resolve.</p>
  
  <blockquote>
    <p>Declaration of Whatever\CacheItemPoolInterface::save() must be compatible with Psr\Cache\CacheItemPoolInterface::save(Psr\Cache\CacheItemInterface $item)</p>
  </blockquote>
  
  <p>I'm accepting the same parameters and returning the same values as the interface class.</p>
  
  <p>Here's a stripped-down version of the code I'm working on.</p>
  
  <p>My implementation class:</p>
  
  <pre><code>namespace Whatever;
  
  class CacheItemPoolInterface implements \Psr\Cache\CacheItemPoolInterface {
    ... More methods and such up here...
  
    public function save(CacheItemInterface $item) {
      $key = $item-&gt;getKey();
      $value = $item-&gt;get();
      $expiration = $item-&gt;getExpiration();
      if (cache_set($key, $value, $this-&gt;bin, $expiration)) {
        return TRUE;
      }
      else {
        return FALSE;
      }
    }
    ... Some more stuff down here too...
  }
  </code></pre>
  
  <p>Here's the class I'm implementing:</p>
  
  <pre><code>&lt;?php
  
  namespace Psr\Cache;
  
  interface CacheItemPoolInterface
  {
  
     /**
      * Persists a cache item immediately.
      *
      * @param CacheItemInterface $item
      *   The cache item to save.
      *
      * @return bool
      *   True if the item was successfully persisted. False if there was an error.
      */
     public function save(CacheItemInterface $item);
  }
  </code></pre>
  
  <p>Any ideas what I'm doing wrong?</p>