betasite-1.0.4/modules/betasite_switches/src/TwigExtension/BetaSwitchExtension.php

modules/betasite_switches/src/TwigExtension/BetaSwitchExtension.php
<?php

namespace Drupal\betasite_switches\TwigExtension;

use Drupal\betasite_switches\BetaSwitchManagerInterface;
use Psr\Log\LoggerInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

/**
 * Beta Switches Twig extension that adds a custom function to check a switch status.
 *
 * @code
 * {{ betaswitch($my_switch_id) }}
 * @endcode
 */
class BetaSwitchExtension extends AbstractExtension {

  /**
   * A logger instance.
   *
   * @var \Psr\Log\LoggerInterface
   */
  protected $logger;

  /**
   * The Beta Switch Manager service.
   *
   * @var \Drupal\betasite_switches\BetaSwitchManagerInterface
   */
  protected $switchManager;

  /**
   * Constructs the BetaSwitchExtension object.
   *
   * @param \Psr\Log\LoggerInterface $logger
   *   A logger instance.
   * @param \Drupal\betasite_switches\BetaSwitchManagerInterface $switchManager
   *   The Beta Switch Manager service.
   */
  public function __construct(LoggerInterface $logger, BetaSwitchManagerInterface $switchManager) {
    $this->logger = $logger;
    $this->switchManager = $switchManager;
  }

  /**
   * {@inheritdoc}
   */
  public function getFunctions() {
    return [
      new TwigFunction('betaswitch', [$this, 'betaSwitch']),
    ];
  }

  /**
   * Returns Activation status of beta switch if it exists.
   *
   * @param string $switchId
   *   The machine name for the beta switch.
   *
   * @return bool
   *   The beta switch status or the configured default for missing
   *   switches.
   *
   * @see BetaSwitchManagerInterface::getStatus()
   */
  public function betaSwitch(string $switchId): bool {
    $response = $this->switchManager->getStatus($switchId);
    return $response;
  }

}

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

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