function YamlTest::testObjectSupportDisabledSymfony

Same name in other branches
  1. 8.9.x core/tests/Drupal/Tests/Component/Serialization/YamlTest.php \Drupal\Tests\Component\Serialization\YamlTest::testObjectSupportDisabledSymfony()

Ensures that decoding php objects does not work in Symfony.

@requires extension yaml

See also

\Drupal\Tests\Component\Serialization\YamlTest::testObjectSupportDisabledPecl()

File

core/tests/Drupal/Tests/Component/Serialization/YamlTest.php, line 110

Class

YamlTest
@coversDefaultClass \Drupal\Component\Serialization\Yaml @group Serialization

Namespace

Drupal\Tests\Component\Serialization

Code

public function testObjectSupportDisabledSymfony() {
    $this->expectException(InvalidDataTypeException::class);
    $this->expectExceptionMessageMatches('/^Object support when parsing a YAML file has been disabled/');
    $object = new \stdClass();
    $object->foo = 'bar';
    // In core all Yaml encoding is done via Symfony and it does not support
    // objects so in order to encode an object we have to use the PECL
    // extension.
    // @see \Drupal\Component\Serialization\Yaml::encode()
    $yaml = YamlPecl::encode([
        $object,
    ]);
    YamlSymfony::decode($yaml);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.