Source of file PubSubHubbub.php
Size: 3,902 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Feed/PubSubHubbub/PubSubHubbub.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Feed\PubSubHubbub; use Zend\Escaper\Escaper; use Zend\Feed\Reader; use Zend\Http; class PubSubHubbub { /** * Verification Modes */ const VERIFICATION_MODE_SYNC = 'sync'; const VERIFICATION_MODE_ASYNC = 'async'; /** * Subscription States */ const SUBSCRIPTION_VERIFIED = 'verified'; const SUBSCRIPTION_NOTVERIFIED = 'not_verified'; const SUBSCRIPTION_TODELETE = 'to_delete'; /** * @var Escaper */ protected static $escaper; /** * Singleton instance if required of the HTTP client * * @var Http\Client */ protected static $httpClient = null; /** * Simple utility function which imports any feed URL and * determines the existence of Hub Server endpoints. This works * best if directly given an instance of Zend\Feed\Reader\Atom|Rss * to leverage off. * * @param \Zend\Feed\Reader\Feed\AbstractFeed|string $source * @return array * @throws Exception\InvalidArgumentException */ public static function detectHubs($source) { if (is_string($source)) { $feed = Reader\Reader::import($source); } elseif ($source instanceof Reader\Feed\AbstractFeed) { $feed = $source; } else { throw new Exception\InvalidArgumentException('The source parameter was' . ' invalid, i.e. not a URL string or an instance of type' . ' Zend\Feed\Reader\Feed\AbstractFeed'); } return $feed->getHubs(); } /** * Allows the external environment to make ZendOAuth use a specific * Client instance. * * @param Http\Client $httpClient * @return void */ public static function setHttpClient(Http\Client $httpClient) { static::$httpClient = $httpClient; } /** * Return the singleton instance of the HTTP Client. Note that * the instance is reset and cleared of previous parameters GET/POST. * Headers are NOT reset but handled by this component if applicable. * * @return Http\Client */ public static function getHttpClient() { if (!isset(static::$httpClient)) { static::$httpClient = new Http\Client; } else { static::$httpClient->resetParameters(); } return static::$httpClient; } /** * Simple mechanism to delete the entire singleton HTTP Client instance * which forces a new instantiation for subsequent requests. * * @return void */ public static function clearHttpClient() { static::$httpClient = null; } /** * Set the Escaper instance * * If null, resets the instance * * @param null|Escaper $escaper */ public static function setEscaper(Escaper $escaper = null) { static::$escaper = $escaper; } /** * Get the Escaper instance * * If none registered, lazy-loads an instance. * * @return Escaper */ public static function getEscaper() { if (null === static::$escaper) { static::setEscaper(new Escaper()); } return static::$escaper; } /** * RFC 3986 safe url encoding method * * @param string $string * @return string */ public static function urlencode($string) { $escaper = static::getEscaper(); $rawencoded = $escaper->escapeUrl($string); $rfcencoded = str_replace('%7E', '~', $rawencoded); return $rfcencoded; } } |