/** * 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; } }