You are here

class PubSubHubbub in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/zendframework/zend-feed/src/PubSubHubbub/PubSubHubbub.php \Zend\Feed\PubSubHubbub\PubSubHubbub

Hierarchy

Expanded class hierarchy of PubSubHubbub

File

vendor/zendframework/zend-feed/src/PubSubHubbub/PubSubHubbub.php, line 16

Namespace

Zend\Feed\PubSubHubbub
View source
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;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PubSubHubbub::$escaper protected static property
PubSubHubbub::$httpClient protected static property Singleton instance if required of the HTTP client
PubSubHubbub::clearHttpClient public static function Simple mechanism to delete the entire singleton HTTP Client instance which forces a new instantiation for subsequent requests.
PubSubHubbub::detectHubs public static function 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.
PubSubHubbub::getEscaper public static function Get the Escaper instance
PubSubHubbub::getHttpClient public static function 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.
PubSubHubbub::setEscaper public static function Set the Escaper instance
PubSubHubbub::setHttpClient public static function Allows the external environment to make ZendOAuth use a specific Client instance.
PubSubHubbub::SUBSCRIPTION_NOTVERIFIED constant
PubSubHubbub::SUBSCRIPTION_TODELETE constant
PubSubHubbub::SUBSCRIPTION_VERIFIED constant Subscription States
PubSubHubbub::urlencode public static function RFC 3986 safe url encoding method
PubSubHubbub::VERIFICATION_MODE_ASYNC constant
PubSubHubbub::VERIFICATION_MODE_SYNC constant Verification Modes