Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      25.00%  | 
      1 / 4  | 
      CRAP |         | 
      68.18%  | 
      15 / 22  | 
     
| LanguageConfigOverride |         | 
      0.00%  | 
      0 / 1  | 
              | 
      25.00%  | 
      1 / 4  | 
      7.16 |         | 
      68.18%  | 
      15 / 22  | 
     
| __construct |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 5  | 
     |||
| save |         | 
      0.00%  | 
      0 / 1  | 
      3.01 |         | 
      88.89%  | 
      8 / 9  | 
     |||
| delete |         | 
      100.00%  | 
      1 / 1  | 
      1 |         | 
      100.00%  | 
      7 / 7  | 
     |||
| getLangcode |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 1  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\language\Config\LanguageConfigOverride. | |
| */ | |
| namespace Drupal\language\Config; | |
| use Drupal\Core\Cache\Cache; | |
| use Drupal\Core\Config\StorableConfigBase; | |
| use Drupal\Core\Config\StorageInterface; | |
| use Drupal\Core\Config\TypedConfigManagerInterface; | |
| use Symfony\Component\EventDispatcher\EventDispatcherInterface; | |
| /** | |
| * Defines language configuration overrides. | |
| */ | |
| class LanguageConfigOverride extends StorableConfigBase { | |
| use LanguageConfigCollectionNameTrait; | |
| /** | |
| * The event dispatcher. | |
| * | |
| * @var \Symfony\Component\EventDispatcher\EventDispatcherInterface | |
| */ | |
| protected $eventDispatcher; | |
| /** | |
| * Constructs a language override object. | |
| * | |
| * @param string $name | |
| * The name of the configuration object being overridden. | |
| * @param \Drupal\Core\Config\StorageInterface $storage | |
| * A storage controller object to use for reading and writing the | |
| * configuration override. | |
| * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config | |
| * The typed configuration manager service. | |
| * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher | |
| * The event dispatcher. | |
| */ | |
| public function __construct($name, StorageInterface $storage, TypedConfigManagerInterface $typed_config, EventDispatcherInterface $event_dispatcher) { | |
| $this->name = $name; | |
| $this->storage = $storage; | |
| $this->typedConfigManager = $typed_config; | |
| $this->eventDispatcher = $event_dispatcher; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function save($has_trusted_data = FALSE) { | |
| if (!$has_trusted_data) { | |
| // @todo Use configuration schema to validate. | |
| // https://www.drupal.org/node/2270399 | |
| // Perform basic data validation. | |
| foreach ($this->data as $key => $value) { | |
| $this->validateValue($key, $value); | |
| } | |
| } | |
| $this->storage->write($this->name, $this->data); | |
| // Invalidate the cache tags not only when updating, but also when creating, | |
| // because a language config override object uses the same cache tag as the | |
| // default configuration object. Hence creating a language override is like | |
| // an update of configuration, but only for a specific language. | |
| Cache::invalidateTags($this->getCacheTags()); | |
| $this->isNew = FALSE; | |
| $this->eventDispatcher->dispatch(LanguageConfigOverrideEvents::SAVE_OVERRIDE, new LanguageConfigOverrideCrudEvent($this)); | |
| $this->originalData = $this->data; | |
| return $this; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function delete() { | |
| $this->data = array(); | |
| $this->storage->delete($this->name); | |
| Cache::invalidateTags($this->getCacheTags()); | |
| $this->isNew = TRUE; | |
| $this->eventDispatcher->dispatch(LanguageConfigOverrideEvents::DELETE_OVERRIDE, new LanguageConfigOverrideCrudEvent($this)); | |
| $this->originalData = $this->data; | |
| return $this; | |
| } | |
| /** | |
| * Returns the language code of this language override. | |
| * | |
| * @return string | |
| * The language code. | |
| */ | |
| public function getLangcode() { | |
| return $this->getLangcodeFromCollectionName($this->getStorage()->getCollectionName()); | |
| } | |
| } |