/**
  * Initialize Storage
  *
  * @param  array $input
  * @return $this
  */
 public static function getInstance($input = null)
 {
     if (is_object(self::$instance) && self::$instance instanceof Operation) {
         return self::$instance;
     } else {
         $operation = new self();
         if (null === $input && isset($_SESSION)) {
             $input = $_SESSION;
             if (is_object($input) && !$_SESSION instanceof \ArrayObject) {
                 $input = (array) $input;
             }
         } elseif (null === $input) {
             $input = array();
         }
         $_SESSION = $input;
         $operation->setRequestAccessTime(microtime(true));
         self::$instance = $operation;
         session_start();
         return self::$instance;
     }
 }