diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php index b2a94b07dca21804b5419203da7cad50980fe18c..3dd0b0a11a1ec772de45d107089e94efe1bec129 100644 --- a/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php +++ b/core/lib/Drupal/Core/Config/Entity/ConfigStorageController.php @@ -470,11 +470,11 @@ public function importChange($name, Config $new_config, Config $old_config) { $entity->original = clone $entity; foreach ($old_config->get() as $property => $value) { - $entity->original->$property = $value; + $entity->original->set($property, $value); } foreach ($new_config->get() as $property => $value) { - $entity->$property = $value; + $entity->set($property, $value); } $entity->save(); diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php index 95089f7641ff8b78196eea7331f9a5143572b858..5e625218e1a87fd2299e51dc802f47b614c7530c 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportTest.php @@ -108,6 +108,7 @@ function testNew() { 'label' => 'New', 'style' => '', 'langcode' => 'und', + 'protected_property' => '', ); $staging->write($dynamic_name, $original_dynamic_data); diff --git a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php index dd24224d9b97a818d06df91eccd2af9bfd5abe43..b91fd39658a6a01a44d8c66e98ee44b65dd1bb13 100644 --- a/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php +++ b/core/modules/config/lib/Drupal/config/Tests/ConfigImportUITest.php @@ -60,6 +60,7 @@ function testImport() { 'label' => 'New', 'style' => '', 'langcode' => 'und', + 'protected_property' => '', ); $staging->write($dynamic_name, $original_dynamic_data); diff --git a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml index 3e50e3bbd3de64665a873daf098a59326e0cefba..fefeed546c596c41c3a7d9382defe9ba6ed95e34 100644 --- a/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml +++ b/core/modules/config/tests/config_test/config/config_test.dynamic.default.yml @@ -1,2 +1,3 @@ id: default label: Default +protected_property: Default diff --git a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php index 52da7775529163ce183fa5a0847a398a79679c98..574c10082b5c927b1f80fa85454ef1b771682870 100644 --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Plugin/Core/Entity/ConfigTest.php @@ -62,4 +62,25 @@ class ConfigTest extends ConfigEntityBase { */ public $style; + /** + * A protected property of the configuration entity. + * + * @var string + */ + protected $protected_property; + + /** + * Overrides \Drupal\Core\Config\Entity\ConfigEntityBase::getExportProperties(); + */ + public function getExportProperties() { + $properties = parent::getExportProperties(); + $protected_names = array( + 'protected_property', + ); + foreach ($protected_names as $name) { + $properties[$name] = $this->get($name); + } + return $properties; + } + }