/** * getServiceContent * * @param mixed $identifier Identifier * @param bool $skipcache Whether or not to skip cache * * @access public * @return void */ function getServiceContent($identifier, $skipcache) { $content = null; if (!$skipcache) { $store = OpenID::getStore(); $d = $store->getDiscover($identifier); if ($d === false) { $d = new OpenID_Discover($identifier); try { $result = $d->discover(); if ($result === false) { $content = 'Discovery failed'; return $content; } $store->setDiscover($d); } catch (OpenID_Exception $e) { return get_class($e) . ': ' . $e->getMessage(); } } else { $cache = true; } } else { $d = new OpenID_Discover($identifier); try { $result = $d->discover(); if ($result === false) { $content = 'Discovery failed'; return $content; } } catch (OpenID_Exception $e) { return get_class($e) . ': ' . $e->getMessage(); } } $content = array(); if (!empty($cache)) { $content['cached'] = true; } $content['OpenID_Discover'] = $d->services; $extensions = array('OAuth', 'AX', 'SREG11', 'UI'); $supported = array(); foreach ($extensions as $extension) { $supported[$extension] = $d->extensionSupported($extension); } $content['Extensions Supported'] = $supported; return $content; }
/** * Static helper method for retrieving discovered information from cache if it * exists, otherwise executing discovery and storing results if they are * positive. * * @param string $id URI Identifier to discover * @param OpenID_Store $store Instance of OpenID_Store * * @return OpenID_Discover|false OpenID_Discover on success, false on failure */ public static function getDiscover($id, OpenID_Store_Interface $store) { $discoverCache = $store->getDiscover($id); if ($discoverCache instanceof OpenID_Discover) { return $discoverCache; } $discover = new OpenID_Discover($id); $result = $discover->discover(); if ($result === false) { // @codeCoverageIgnoreStart return false; // @codeCoverageIgnoreEnd } $expireTime = null; if ($discover->services->getExpiresHeader()) { $expireTime = strtotime($discover->services->getExpiresHeader()) - time(); } $store->setDiscover($discover, $expireTime); return $discover; }