class ProviderBase in Express 8
CDN provider base class.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\bootstrap\Plugin\PluginBase
- class \Drupal\bootstrap\Plugin\Provider\ProviderBase implements ProviderInterface
 
 
 - class \Drupal\bootstrap\Plugin\PluginBase
 
 - class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
 
Expanded class hierarchy of ProviderBase
File
- themes/
contrib/ bootstrap/ src/ Plugin/ Provider/ ProviderBase.php, line 21  - Contains \Drupal\bootstrap\Plugin\Provider\ProviderBase.
 
Namespace
Drupal\bootstrap\Plugin\ProviderView source
class ProviderBase extends PluginBase implements ProviderInterface {
  /**
   * The currently set assets.
   *
   * @var array
   */
  protected $assets = [];
  /**
   * The versions supplied by the CDN provider.
   *
   * @var array
   */
  protected $versions;
  /**
   * {@inheritdoc}
   */
  public function getApi() {
    return $this->pluginDefinition['api'];
  }
  /**
   * {@inheritdoc}
   */
  public function getAssets($types = NULL) {
    // Immediately return if there are no assets.
    if (!$this->assets) {
      return $this->assets;
    }
    $assets = [];
    // If no type is set, return all CSS and JS.
    if (!isset($types)) {
      $types = [
        'css',
        'js',
      ];
    }
    $types = is_array($types) ? $types : [
      $types,
    ];
    // Ensure default arrays exist for the requested types.
    foreach ($types as $type) {
      $assets[$type] = [];
    }
    // Retrieve the system performance config.
    $config = \Drupal::config('system.performance');
    // Iterate over each type.
    foreach ($types as $type) {
      $min = $config
        ->get("{$type}.preprocess");
      $files = $min && isset($this->assets['min'][$type]) ? $this->assets['min'][$type] : (isset($this->assets[$type]) ? $this->assets[$type] : []);
      foreach ($files as $asset) {
        $data = [
          'data' => $asset,
          'type' => 'external',
          'weight' => -19.999,
        ];
        // CSS library assets use "SMACSS" categorization, assign it to "base".
        if ($type === 'css') {
          $assets[$type]['base'][$asset] = $data;
        }
        else {
          $assets[$type][$asset] = $data;
        }
      }
    }
    return count($types) === 1 ? $assets[$types[0]] : $assets;
  }
  /**
   * {@inheritdoc}
   */
  public function getDescription() {
    return $this->pluginDefinition['description'];
  }
  /**
   * {@inheritdoc}
   */
  public function getLabel() {
    return $this->pluginDefinition['label'] ?: $this
      ->getPluginId();
  }
  /**
   * {@inheritdoc}
   */
  public function getThemes() {
    return $this->pluginDefinition['themes'];
  }
  /**
   * {@inheritdoc}
   */
  public function getVersions() {
    return $this->pluginDefinition['versions'];
  }
  /**
   * {@inheritdoc}
   */
  public function hasError() {
    return $this->pluginDefinition['error'];
  }
  /**
   * {@inheritdoc}
   */
  public function isImported() {
    return $this->pluginDefinition['imported'];
  }
  /**
   * {@inheritdoc}
   */
  public function processDefinition(array &$definition, $plugin_id) {
    $provider_path = ProviderManager::FILE_PATH;
    file_prepare_directory($provider_path, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
    // Process API data.
    if ($api = $this
      ->getApi()) {
      // Use manually imported API data, if it exists.
      if (file_exists("{$provider_path}/{$plugin_id}.json") && ($imported_data = file_get_contents("{$provider_path}/{$plugin_id}.json"))) {
        $definition['imported'] = TRUE;
        $response = new Response(200, [], $imported_data);
      }
      else {
        $client = \Drupal::httpClient();
        $request = new Request('GET', $api);
        try {
          $response = $client
            ->send($request);
        } catch (RequestException $e) {
          $response = new Response(400);
        }
      }
      $contents = $response
        ->getBody(TRUE)
        ->getContents();
      $json = Json::decode($contents) ?: [];
      $this
        ->processApi($json, $definition);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function processApi(array $json, array &$definition) {
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of service IDs keyed by property name used for serialization. | |
| 
            DependencySerializationTrait:: | 
                  public | function | 1 | |
| 
            DependencySerializationTrait:: | 
                  public | function | 2 | |
| 
            MessengerTrait:: | 
                  protected | property | The messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Gets the messenger. | 29 | 
| 
            MessengerTrait:: | 
                  public | function | Sets the messenger. | |
| 
            PluginBase:: | 
                  protected | property | Configuration information passed into the plugin. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin implementation definition. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin_id. | |
| 
            PluginBase:: | 
                  protected | property | The currently set theme object. | |
| 
            PluginBase:: | 
                  constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| 
            PluginBase:: | 
                  public | function | 
            Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 
                  3 | 
| 
            PluginBase:: | 
                  public | function | 
            Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | Determines if the plugin is configurable. | |
| 
            PluginBase:: | 
                  public | function | 
            Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: | 
                  1 | 
| 
            ProviderBase:: | 
                  protected | property | The currently set assets. | |
| 
            ProviderBase:: | 
                  protected | property | The versions supplied by the CDN provider. | |
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves the API URL if set. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves Provider assets for the active provider, if any. Overrides ProviderInterface:: | 
                  2 | 
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves the provider description. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves the provider human-readable label. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves the themes supported by the CDN provider. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Retrieves the versions supported by the CDN provider. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Flag indicating that the API data parsing failed. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Flag indicating that the API data was manually imported. Overrides ProviderInterface:: | 
                  |
| 
            ProviderBase:: | 
                  public | function | 
            Processes the provider plugin definition upon discovery. Overrides ProviderInterface:: | 
                  1 | 
| 
            ProviderBase:: | 
                  public | function | 
            Processes the provider plugin definition upon discovery. Overrides ProviderInterface:: | 
                  |
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. |