Loading core/lib/Drupal/Core/Extension/Dependency.php +10 −0 Changes for core/lib/Drupal/Core/Extension/Dependency.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -190,4 +190,14 @@ public static function createFromString($dependency) { return new static($name, $project, $version_string); } /** * Prevents unnecessary serialization of constraint objects. * * @return array * The properties to seriailize. */ public function __sleep() { return ['name', 'project', 'constraintString']; } } core/tests/Drupal/Tests/Core/Extension/DependencyTest.php +16 −0 Changes for core/tests/Drupal/Tests/Core/Extension/DependencyTest.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\Core\Extension; use Drupal\Component\Version\Constraint; use Drupal\Core\Extension\Dependency; use Drupal\Tests\UnitTestCase; Loading Loading @@ -100,4 +101,19 @@ public function testOffsetSet() { $dependency['name'] = 'foo'; } /** * Ensures that constraint objects are not serialized. * * @covers ::__sleep */ public function testSerialization() { $dependency = new Dependency('paragraphs_demo', 'paragraphs', '>8.x-1.1'); $this->assertTrue($dependency->isCompatible('1.2')); $this->assertInstanceOf(Constraint::class, $this->getObjectAttribute($dependency, 'constraint')); $dependency = unserialize(serialize($dependency)); $this->assertNull($this->getObjectAttribute($dependency, 'constraint')); $this->assertTrue($dependency->isCompatible('1.2')); $this->assertInstanceOf(Constraint::class, $this->getObjectAttribute($dependency, 'constraint')); } } Loading
core/lib/Drupal/Core/Extension/Dependency.php +10 −0 Changes for core/lib/Drupal/Core/Extension/Dependency.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -190,4 +190,14 @@ public static function createFromString($dependency) { return new static($name, $project, $version_string); } /** * Prevents unnecessary serialization of constraint objects. * * @return array * The properties to seriailize. */ public function __sleep() { return ['name', 'project', 'constraintString']; } }
core/tests/Drupal/Tests/Core/Extension/DependencyTest.php +16 −0 Changes for core/tests/Drupal/Tests/Core/Extension/DependencyTest.php: 16 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\Core\Extension; use Drupal\Component\Version\Constraint; use Drupal\Core\Extension\Dependency; use Drupal\Tests\UnitTestCase; Loading Loading @@ -100,4 +101,19 @@ public function testOffsetSet() { $dependency['name'] = 'foo'; } /** * Ensures that constraint objects are not serialized. * * @covers ::__sleep */ public function testSerialization() { $dependency = new Dependency('paragraphs_demo', 'paragraphs', '>8.x-1.1'); $this->assertTrue($dependency->isCompatible('1.2')); $this->assertInstanceOf(Constraint::class, $this->getObjectAttribute($dependency, 'constraint')); $dependency = unserialize(serialize($dependency)); $this->assertNull($this->getObjectAttribute($dependency, 'constraint')); $this->assertTrue($dependency->isCompatible('1.2')); $this->assertInstanceOf(Constraint::class, $this->getObjectAttribute($dependency, 'constraint')); } }