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. |