<?php 
 
namespace League\Flysystem; 
 
final class SafeStorage 
{ 
    /** 
     * @var string 
     */ 
    private $hash; 
 
    /** 
     * @var array 
     */ 
    protected static $safeStorage = []; 
 
    public function __construct() 
    { 
        $this->hash = spl_object_hash($this); 
        static::$safeStorage[$this->hash] = []; 
    } 
 
    public function storeSafely($key, $value) 
    { 
        static::$safeStorage[$this->hash][$key] = $value; 
    } 
 
    public function retrieveSafely($key) 
    { 
        if (array_key_exists($key, static::$safeStorage[$this->hash])) { 
            return static::$safeStorage[$this->hash][$key]; 
        } 
    } 
 
    public function __destruct() 
    { 
        unset(static::$safeStorage[$this->hash]); 
    } 
} 
 
 |