flow-1.0.0-beta8/src/Helpers/PluginWithSettingsTrait.php

src/Helpers/PluginWithSettingsTrait.php
<?php

namespace Drupal\flow\Helpers;

/**
 * Trait for plugins that have settings.
 */
trait PluginWithSettingsTrait {

  /**
   * The plugin settings.
   *
   * @var array
   */
  protected array $settings = [];

  /**
   * Constructs a new plugin instance.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin_id for the plugin instance.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    $this->pluginId = $plugin_id;
    $this->pluginDefinition = $plugin_definition;
    $this->configuration = $configuration;
    if (!isset($this->configuration['settings'])) {
      $this->configuration['settings'] = [];
    }
    if (!isset($this->configuration['third_party_settings'])) {
      $this->configuration['third_party_settings'] = [];
    }
    $this->settings = &$this->configuration['settings'];
    $this->thirdPartySettings = &$this->configuration['third_party_settings'];
  }

  /**
   * {@inheritdoc}
   */
  public function getSettings(): array {
    return $this->settings;
  }

  /**
   * {@inheritdoc}
   */
  public function setSettings(array $settings): void {
    $this->settings = $settings;
  }

  /**
   * Get the settings array as reference.
   *
   * This public method exists to save some overhead on runtime when
   * accessing and changing settings values.
   *
   * @return array
   *   The settings as reference.
   */
  public function &settings(): array {
    return $this->settings;
  }

}

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

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