You are here

abstract class WSConnectorBase in Web Service Data 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/WSConnectorBase.php \Drupal\wsdata\Plugin\WSConnectorBase

Base class for Wsconnector plugin plugins.

Hierarchy

Expanded class hierarchy of WSConnectorBase

3 files declare their use of WSConnectorBase
WSConnectorLocalFile.php in src/Plugin/WSConnector/WSConnectorLocalFile.php
WSConnectorSimpleHTTP.php in src/Plugin/WSConnector/WSConnectorSimpleHTTP.php
WSConnectorSOAP.php in src/Plugin/WSConnector/WSConnectorSOAP.php

File

src/Plugin/WSConnectorBase.php, line 13

Namespace

Drupal\wsdata\Plugin
View source
abstract class WSConnectorBase extends PluginBase implements WSConnectorInterface {
  use StringTranslationTrait;
  protected $expires;
  protected $cacheDefaultTime;
  protected $cacheDefaultOverride;
  protected $staleCache;
  protected $endpoint;
  protected $error;
  protected $status;
  protected $languagePlugins = [
    'default',
  ];

  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, Token $token) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->token = $token;
    $this->expires = 0;
    $this->cacheDefaultTime = 0;
    $this->cacheDefaultOverride = FALSE;
    $this->staleCache = FALSE;
    $this->status = [];
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
    return new static($configuration, $plugin_id, $plugin_definition, $container
      ->get('token'));
  }

  /**
   * Return available options supported by the connector.
   */
  public abstract function getOptions();

  /**
   * Return available methods supported by the connector.
   */
  public abstract function getMethods();

  /**
   * Return an array of replacements.
   */
  public abstract function getReplacements(array $options);

  /**
   * Return the settings form provided by the connector.
   */
  public function getOptionsForm($options = []) {
    return [];
  }

  /**
   * Return cache cid for cases cache rules change.
   */
  public function getCache() {
    return NULL;
  }

  /**
   * Make the connector call.
   */
  public abstract function call($options, $method, $replacements = [], $data = NULL, array $tokens = []);

  /**
   * Setter for the endpoint.
   */
  public function setEndpoint($endpoint) {
    $this->endpoint = trim($endpoint);
  }

  /**
   * Getter for the endpoint.
   */
  public function getEndpoint() {
    return $this->endpoint;
  }

  /**
   * Whether returned data can be cached.
   */
  public function supportsCaching($method = NULL) {
    return FALSE;
  }

  /**
   * Return the last error the connector received.
   */
  public function getError() {
    return $this->error;
  }

  /**
   * Return the status of the last call.
   */
  public function getStatus() {
    return $this->status;
  }

  /**
   * Return the list of supported language handling plugins.
   */
  public function getSupportedLanguagePlugins() {
    return $this->languagePlugins;
  }

  /**
   * Figure out the overrides for cache times.
   */
  public function defaultCache($mintime = 0, $override = FALSE, $stale = FALSE) {
    $this->cacheDefaultTime = $mintime;
    $this->cacheDefaultOverride = $override;
    $this->staleCache = $stale;
  }

  /**
   * Get the expired time for caching.
   */
  public function expires() {
    if ($this->expires > 0) {
      return $this->expires;
    }
    else {
      return FALSE;
    }
  }

  /**
   * Whether the connector is in a dead state and shouldn't be called.
   */
  public function isDegraded() {
    return FALSE;
  }

  /**
   * Setter for the connector errors.
   */
  protected function setError($code, $message) {
    $this->error = [
      'code' => $code,
      'message' => $message,
    ];
  }

  /**
   * Clear current error.
   */
  protected function clearError() {
    $this->error = NULL;
  }

  /**
   * Saves the options form.
   */
  public function saveOptions($values) {
    $options = [];
    foreach (array_keys($this
      ->getOptionsForm()) as $option) {
      if (isset($values[$option])) {
        $options[$option] = $values[$option];
      }
    }
    return $options;
  }

  /**
   * Internal function for finding tokens.
   */
  protected function findTokens($string) {
    preg_match_all('/\\[([\\w:]+)\\]/', $string, $matches);
    return $matches[1];
  }

  /**
   * Internal function for applying replacements.
   */
  protected function applyReplacements($string, array $replacements = [], array $tokens = []) {
    foreach ($replacements as $token => $replace) {
      $string = str_replace('[' . $token . ']', $replace, $string);
    }
    $string = $this->token
      ->replace($string, $tokens);
    return $string;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
WSConnectorBase::$cacheDefaultOverride protected property
WSConnectorBase::$cacheDefaultTime protected property
WSConnectorBase::$endpoint protected property
WSConnectorBase::$error protected property
WSConnectorBase::$expires protected property
WSConnectorBase::$languagePlugins protected property
WSConnectorBase::$staleCache protected property
WSConnectorBase::$status protected property
WSConnectorBase::applyReplacements protected function Internal function for applying replacements.
WSConnectorBase::call abstract public function Make the connector call. 2
WSConnectorBase::clearError protected function Clear current error.
WSConnectorBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 1
WSConnectorBase::defaultCache public function Figure out the overrides for cache times.
WSConnectorBase::expires public function Get the expired time for caching.
WSConnectorBase::findTokens protected function Internal function for finding tokens.
WSConnectorBase::getCache public function Return cache cid for cases cache rules change. 2
WSConnectorBase::getEndpoint public function Getter for the endpoint.
WSConnectorBase::getError public function Return the last error the connector received.
WSConnectorBase::getMethods abstract public function Return available methods supported by the connector. 2
WSConnectorBase::getOptions abstract public function Return available options supported by the connector. 2
WSConnectorBase::getOptionsForm public function Return the settings form provided by the connector. Overrides WSConnectorInterface::getOptionsForm 2
WSConnectorBase::getReplacements abstract public function Return an array of replacements. 2
WSConnectorBase::getStatus public function Return the status of the last call.
WSConnectorBase::getSupportedLanguagePlugins public function Return the list of supported language handling plugins.
WSConnectorBase::isDegraded public function Whether the connector is in a dead state and shouldn't be called.
WSConnectorBase::saveOptions public function Saves the options form. 1
WSConnectorBase::setEndpoint public function Setter for the endpoint.
WSConnectorBase::setError protected function Setter for the connector errors.
WSConnectorBase::supportsCaching public function Whether returned data can be cached. 1
WSConnectorBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct 1