public function testSetAccessorOrderAlphabetical() { $metadata = new ClassMetadata(new \ReflectionClass(PropertyMetadataOrder::class)); $metadata->addAttributeMetadata(new PropertyMetadata(PropertyMetadataOrder::class, 'b')); $metadata->addAttributeMetadata(new PropertyMetadata(PropertyMetadataOrder::class, 'a')); $this->assertEquals(['b', 'a'], array_keys($metadata->getAttributesMetadata())); $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_ALPHABETICAL); $this->assertEquals(['a', 'b'], array_keys($metadata->getAttributesMetadata())); }
private function loadExposedAttribute(PropertyMetadata $metadata, array $annotations, ClassMetadata $classMetadata) { $metadata->readOnly = $metadata->readOnly || $classMetadata->readOnly; $accessType = $classMetadata->defaultAccessType; $accessor = [null, null]; foreach ($annotations as $annotation) { $this->processor->process($annotation, $metadata); if ($annotation instanceof Annotation\AccessType) { $accessType = $annotation->type; } elseif ($annotation instanceof Annotation\Accessor) { $accessor = [$annotation->getter, $annotation->setter]; } } $metadata->setAccessor($accessType, $accessor[0], $accessor[1]); $classMetadata->addAttributeMetadata($metadata); }