Base::clear PHP Method

clear() public method

Unset hive key
public clear ( $key ) : null
$key string
return null
    function clear($key)
    {
        // Normalize array literal
        $cache = Cache::instance();
        $parts = $this->cut($key);
        if ($key == 'CACHE') {
            // Clear cache contents
            $cache->reset();
        } elseif (preg_match('/^(GET|POST|COOKIE)\\b(.+)/', $key, $expr)) {
            $this->clear('REQUEST' . $expr[2]);
            if ($expr[1] == 'COOKIE') {
                $parts = $this->cut($key);
                $jar = $this->hive['JAR'];
                $jar['expire'] = strtotime('-1 year');
                call_user_func_array('setcookie', array_merge([$parts[1], NULL], $jar));
                unset($_COOKIE[$parts[1]]);
            }
        } elseif ($parts[0] == 'SESSION') {
            if (!headers_sent() && session_status() != PHP_SESSION_ACTIVE) {
                session_start();
            }
            if (empty($parts[1])) {
                // End session
                session_unset();
                session_destroy();
                $this->clear('COOKIE.' . session_name());
            }
            $this->sync('SESSION');
        }
        if (!isset($parts[1]) && array_key_exists($parts[0], $this->init)) {
            // Reset global to default value
            $this->hive[$parts[0]] = $this->init[$parts[0]];
        } else {
            eval('unset(' . $this->compile('@this->hive.' . $key) . ');');
            if ($parts[0] == 'SESSION') {
                session_commit();
                session_start();
            }
            if ($cache->exists($hash = $this->hash($key) . '.var')) {
                // Remove from cache
                $cache->clear($hash);
            }
        }
    }

Usage Example

Example #1
0
 /**
  * auth service callback
  * @param Base $f3
  * @param $params
  */
 function callback(\Base $f3, $params)
 {
     $Opauth = new \Opauth($this->config, false);
     switch ($Opauth->env['callback_transport']) {
         case 'session':
             $response = $f3->get('SESSION.opauth');
             $f3->clear('SESSION.opauth');
             break;
         case 'post':
             $response = unserialize(base64_decode($f3->get('POST.opauth')));
             break;
         case 'get':
             $response = unserialize(base64_decode($f3->get('GET.opauth')));
             break;
         default:
             $f3->error(400, 'Unsupported callback_transport');
             break;
     }
     if (isset($response['error'])) {
         $f3->call($this->abortFunc, array($response));
         return;
     }
     $data = $response['auth'];
     // validate
     if (empty($data) || empty($response['timestamp']) || empty($response['signature']) || empty($data['provider']) || empty($data['uid'])) {
         $f3->error(400, 'Invalid auth response: Missing key auth response components');
     } elseif (!$Opauth->validate(sha1(print_r($data, true)), $response['timestamp'], $response['signature'], $reason)) {
         $f3->error(400, 'Invalid auth response: ' . $reason);
     } else {
         // It's all good
         $f3->call($this->successFunc, array($data));
     }
 }
All Usage Examples Of Base::clear