ConfigSnapshotStorageTrait.php in Config Snapshot 8
Namespace
Drupal\config_snapshotFile
src/ConfigSnapshotStorageTrait.phpView source
<?php
namespace Drupal\config_snapshot;
use Drupal\config_snapshot\Entity\ConfigSnapshot;
use Drupal\Core\Config\StorageInterface;
/**
* Provides a utility method for working with configuration snapshot services.
*/
trait ConfigSnapshotStorageTrait {
/**
* Returns a configuration snapshot storage service.
*
* Uses a corresponding service if available while falling back to a new
* storage object. The fallback ensures a storage is provided for a newly-
* installed extension before the service container is rebuilt.
*
* @param string $snapshot_set
* The snapshot set.
* @param string $extension_type
* The extension type.
* @param string $extension_name
* The extension name.
* @param string $collection
* (optional) The collection to store configuration in. Defaults to the
* default collection.
* @param \Drupal\config_snapshot\Entity\ConfigSnapshot $config_snapshot
* (optional) The configuration snapshot.
*
* @return \Drupal\config_snapshot\ConfigSnapshotStorage
* A configuration snapshot storage.
*/
protected function getConfigSnapshotStorage($snapshot_set, $extension_type, $extension_name, $collection = StorageInterface::DEFAULT_COLLECTION, ConfigSnapshot $config_snapshot = NULL) {
// The service ID is for the default collection.
$service_id = "config_snapshot.{$snapshot_set}.{$extension_type}.{$extension_name}";
if (\Drupal::getContainer() && \Drupal::hasService($service_id)) {
$storage = \Drupal::service($service_id);
// Switch collections if needed.
if ($collection !== StorageInterface::DEFAULT_COLLECTION) {
$storage = $storage
->createCollection($collection);
}
}
else {
$storage = new ConfigSnapshotStorage($snapshot_set, $extension_type, $extension_name, $collection, $config_snapshot);
}
return $storage;
}
}
Traits
Name | Description |
---|---|
ConfigSnapshotStorageTrait | Provides a utility method for working with configuration snapshot services. |