hook_event_dispatcher-8.x-2.04/modules/core_event_dispatcher/src/Event/Token/TokensReplacementAlterEvent.php

modules/core_event_dispatcher/src/Event/Token/TokensReplacementAlterEvent.php
<?php

namespace Drupal\core_event_dispatcher\Event\Token;

use Drupal\Component\EventDispatcher\Event;
use Drupal\Core\Render\BubbleableMetadata;
use Drupal\core_event_dispatcher\TokenHookEvents;
use Drupal\hook_event_dispatcher\Attribute\HookEvent;
use Drupal\hook_event_dispatcher\Event\EventInterface;

/**
 * Provides event to alter token replacements.
 *
 * @see hook_tokens_alter
 */
#[HookEvent(id: 'tokens_replacement_alter', alter: 'tokens')]
final class TokensReplacementAlterEvent extends Event implements EventInterface {

  /**
   * An array of replacement values.
   *
   * @var array
   */
  private array $replacements = [];

  /**
   * Constructor.
   *
   * @param array &$replacements
   *   An associative array of replacements returned by hook_tokens().
   * @param array $context
   *   The context in which hook_tokens() was called. An associative array with
   *   the following keys, which have the same meaning as the corresponding
   *   parameters of hook_tokens():
   *   - 'type'
   *   - 'tokens'
   *   - 'data'
   *   - 'options'
   * @param \Drupal\Core\Render\BubbleableMetadata $bubbleableMetadata
   *   The bubbleable metadata. In case you alter an existing token based upon
   *   a data source that isn't in $context['data'], you must add that
   *   dependency to $bubbleableMetadata.
   */
  public function __construct(array &$replacements, private readonly array $context, private readonly BubbleableMetadata $bubbleableMetadata) {
    $this->replacements = &$replacements;
  }

  /**
   * Getter.
   *
   * @return array
   *   An associative array of replacements returned by hook_tokens().
   */
  public function &getReplacements(): array {
    return $this->replacements;
  }

  /**
   * Getter.
   *
   * @return array
   *   The context given inside the hook_tokens_alter.
   */
  public function getContext(): array {
    return $this->context;
  }

  /**
   * Getter.
   *
   *  The bubbleable metadata. In case you alter an existing token based upon
   *  a data source that isn't in $context['data'], you must add that
   *  dependency to $bubbleableMetadata.
   *
   * @return \Drupal\Core\Render\BubbleableMetadata
   *   The metadata.
   */
  public function getBubbleableMetadata(): BubbleableMetadata {
    return $this->bubbleableMetadata;
  }

  /**
   * {@inheritdoc}
   */
  public function getDispatcherType(): string {
    return TokenHookEvents::TOKEN_REPLACEMENT_ALTER;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc