You are here

class UrlInvalidation in Purge 8.3

Describes URL based invalidation, e.g. "http://site.com/node/1".

Plugin annotation


@PurgeInvalidation(
  id = "url",
  label = @Translation("Url"),
  description = @Translation("Invalidates by URL."),
  examples = {"http://site.com/node/1"},
  expression_required = TRUE,
  expression_can_be_empty = FALSE
)

Hierarchy

Expanded class hierarchy of UrlInvalidation

File

src/Plugin/Purge/Invalidation/UrlInvalidation.php, line 21

Namespace

Drupal\purge\Plugin\Purge\Invalidation
View source
class UrlInvalidation extends InvalidationBase implements InvalidationInterface {

  /**
   * Url object (absolute) or string describing Uri of what needs invalidation.
   *
   * @var \Drupal\Core\Url|string
   */
  protected $expression;

  /**
   * The (absolute) URL object that this invalidation object describes.
   *
   * @var \Drupal\Core\Url
   */
  protected $url;

  /**
   * Get the URL object.
   *
   * @return \Drupal\Core\Url
   *   The url object.
   */
  public function getUrl() {
    if (!is_null($this->url)) {
      return $this->url;
    }
    if (is_string($this->expression)) {
      try {
        $this->url = Url::fromUri($this->expression, [
          'absolute' => TRUE,
        ]);
      } catch (\InvalidArgumentException $e) {
        throw new InvalidExpressionException($e
          ->getMessage());
      }
    }
    elseif ($this->expression instanceof Url) {
      $this->url = $this->expression;
      $this->url
        ->setAbsolute();
    }
    else {
      throw new InvalidExpressionException('Url invalidations require either a full URL string or a \\Drupal\\Core\\Url object.');
    }
    return $this->url;
  }

  /**
   * {@inheritdoc}
   */
  public function validateExpression($wildcard_check = TRUE) {
    parent::validateExpression();

    // Set $this->url by calling getUrl and do some more validation.
    $url = $this
      ->getUrl()
      ->toString();
    if (strpos($url, 'http') === FALSE && strpos($url, 'https') === FALSE) {
      throw new InvalidExpressionException('Scheme unsupported!');
    }
    if (!UrlHelper::isValid($url, TRUE)) {
      throw new InvalidExpressionException('The URL is invalid.');
    }
    if ($wildcard_check && strpos($url, '*') !== FALSE) {
      throw new InvalidExpressionException('URL invalidations should not contain asterisks!');
    }
    if (strpos($url, ' ') !== FALSE) {
      throw new InvalidExpressionException('URL invalidations cannot contain spaces, use %20 instead.');
    }

    // @see \Drupal\purge\Plugin\Purge\Invalidation\WildcardUrl
    return $url;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
ImmutableInvalidationBase::$context protected property The instance ID of the purger that is about to process this object.
ImmutableInvalidationBase::$id protected property Unique runtime ID for this instance.
ImmutableInvalidationBase::$properties protected property Purger metadata.
ImmutableInvalidationBase::$states protected property Invalidation states per purger.
ImmutableInvalidationBase::$statesAfterProcessing protected property Valid post-processing states.
ImmutableInvalidationBase::getExpression public function Get the invalidation expression. Overrides ImmutableInvalidationInterface::getExpression 1
ImmutableInvalidationBase::getProperties public function Get all stored properties. Overrides ImmutableInvalidationInterface::getProperties
ImmutableInvalidationBase::getProperty public function Retrieve a purger specific property value. Overrides ImmutableInvalidationInterface::getProperty
ImmutableInvalidationBase::getState public function Get the current or general state of the invalidation. Overrides ImmutableInvalidationInterface::getState 1
ImmutableInvalidationBase::getStateContexts public function Get all stored state contexts. Overrides ImmutableInvalidationInterface::getStateContexts
ImmutableInvalidationBase::getStates public function Get all invalidation states. Overrides ImmutableInvalidationInterface::getStates
ImmutableInvalidationBase::getStateString public function Get the current state as string. Overrides ImmutableInvalidationInterface::getStateString 1
ImmutableInvalidationBase::getStateStringTranslated public function Get the current state as user translated string. Overrides ImmutableInvalidationInterface::getStateStringTranslated
ImmutableInvalidationBase::getType public function Get the type of invalidation. Overrides ImmutableInvalidationInterface::getType
ImmutableInvalidationBase::__toString public function Return the string expression of the invalidation. Overrides ImmutableInvalidationInterface::__toString 1
InvalidationBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
InvalidationBase::deleteProperty public function Delete a purger specific property. Overrides InvalidationInterface::deleteProperty
InvalidationBase::getId public function Get the instance ID. Overrides InvalidationInterface::getId
InvalidationBase::removeStateContext public function Remove a state context from the object because the purger no longer exists. Overrides InvalidationInterface::removeStateContext
InvalidationBase::setProperty public function Set a purger specific property. Overrides InvalidationInterface::setProperty
InvalidationBase::setState public function Set the state of the invalidation. Overrides InvalidationInterface::setState
InvalidationBase::setStateContext public function Set (or reset) state context to the purger instance next in line. Overrides InvalidationInterface::setStateContext
InvalidationBase::__construct public function Constructs \Drupal\purge\Plugin\Purge\Invalidation\InvalidationBase. Overrides PluginBase::__construct
InvStatesInterface::FAILED constant The invalidation failed and will be offered again later.
InvStatesInterface::FRESH constant Invalidation is new and no processing has been attempted on it yet.
InvStatesInterface::NOT_SUPPORTED constant The type of invalidation isn't supported and will be offered again later.
InvStatesInterface::PROCESSING constant The invalidation is processing.
InvStatesInterface::SUCCEEDED constant The invalidation succeeded.
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
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 3
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. 1
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.
UrlInvalidation::$expression protected property Url object (absolute) or string describing Uri of what needs invalidation. Overrides ImmutableInvalidationBase::$expression
UrlInvalidation::$url protected property The (absolute) URL object that this invalidation object describes.
UrlInvalidation::getUrl public function Get the URL object.
UrlInvalidation::validateExpression public function Validate the expression given to the invalidation during instantiation. Overrides InvalidationBase::validateExpression 1