class ClassMetadataFactoryCompiler
@author Fabien Bourigault <bourigaultfabien@gmail.com>
Hierarchy
- class \Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryCompiler
Expanded class hierarchy of ClassMetadataFactoryCompiler
1 file declares its use of ClassMetadataFactoryCompiler
- CompiledClassMetadataCacheWarmer.php in vendor/
symfony/ serializer/ CacheWarmer/ CompiledClassMetadataCacheWarmer.php
File
-
vendor/
symfony/ serializer/ Mapping/ Factory/ ClassMetadataFactoryCompiler.php, line 20
Namespace
Symfony\Component\Serializer\Mapping\FactoryView source
final class ClassMetadataFactoryCompiler {
/**
* @param ClassMetadataInterface[] $classMetadatas
*/
public function compile(array $classMetadatas) : string {
return <<<EOF
<?php
// This file has been auto-generated by the Symfony Serializer Component.
return [{<span class="php-variable">$this</span>-><span class="php-function-or-constant function member-of-self">generateDeclaredClassMetadata</span>(<span class="php-variable">$classMetadatas</span>)}
];
EOF;
}
/**
* @param ClassMetadataInterface[] $classMetadatas
*/
private function generateDeclaredClassMetadata(array $classMetadatas) : string {
$compiled = '';
foreach ($classMetadatas as $classMetadata) {
$attributesMetadata = [];
foreach ($classMetadata->getAttributesMetadata() as $attributeMetadata) {
$attributesMetadata[$attributeMetadata->getName()] = [
$attributeMetadata->getGroups(),
$attributeMetadata->getMaxDepth(),
$attributeMetadata->getSerializedName(),
$attributeMetadata->getSerializedPath(),
];
}
$classDiscriminatorMapping = $classMetadata->getClassDiscriminatorMapping() ? [
$classMetadata->getClassDiscriminatorMapping()
->getTypeProperty(),
$classMetadata->getClassDiscriminatorMapping()
->getTypesMapping(),
] : null;
$compiled .= \sprintf("\n'%s' => %s,", $classMetadata->getName(), VarExporter::export([
$attributesMetadata,
$classDiscriminatorMapping,
]));
}
return $compiled;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ClassMetadataFactoryCompiler::compile | public | function | |
ClassMetadataFactoryCompiler::generateDeclaredClassMetadata | private | function |