/** * @param array $options * @param DoctrineMetadata $doctrineMetadata */ public function __construct(array $options = array(), DoctrineMetadata $doctrineMetadata = null) { parent::__construct($options); if ($doctrineMetadata) { $this->setDoctrineMetadata($doctrineMetadata); } }
/** * @dataProvider dataProvider */ public function testMethods($options, $code, $expectedValue, $hasMethod, $isMethod, $isNotExpected = 'assertFalse') { $metadata = new Metadata($options); $metadata->set($code, $expectedValue); $this->{$hasMethod}($metadata->has($code)); $this->{$isMethod}($metadata->is($code)); $this->{$isMethod}($metadata->is($code, $expectedValue)); $this->{$isNotExpected}($metadata->is($code, 'not_expected_value')); $this->assertEquals($expectedValue, $metadata->get($code)); $this->assertEquals(array_merge($options, [$code => $expectedValue]), $metadata->all()); }
/** * Convert value to string * * @param mixed $value * @param Metadata $metadata * @return string */ protected function convertToString($value, Metadata $metadata) { $convertResult = null; if (null === $value || is_scalar($value)) { $convertResult = $value; } else { $method = $metadata->get('cast_method') ?: '__toString'; if (method_exists($value, $method)) { $convertResult = $value->{$method}(); } } $event = new ValueRenderEvent($convertResult, $value, $metadata); $this->eventDispatcher->dispatch(MergeEvents::BEFORE_VALUE_RENDER, $event); $convertResult = $event->getConvertedValue(); return (string) $convertResult; }