eZ\Publish\Core\Base\Container\Compiler\FieldTypeCollectionPass::process PHP Méthode

process() public méthode

public process ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function process(ContainerBuilder $container)
    {
        if (!$container->hasDefinition('ezpublish.field_type_collection.factory')) {
            return;
        }
        $fieldTypeCollectionFactoryDef = $container->getDefinition('ezpublish.field_type_collection.factory');
        // Field types.
        // Alias attribute is the field type string.
        foreach ($container->findTaggedServiceIds('ezpublish.fieldType') as $id => $attributes) {
            foreach ($attributes as $attribute) {
                if (!isset($attribute['alias'])) {
                    throw new LogicException('ezpublish.fieldType service tag needs an "alias" attribute to identify the field type. None given.');
                }
                $fieldTypeCollectionFactoryDef->addMethodCall('registerFieldType', array($id, $attribute['alias']));
                // Add FieldType to the "concrete" list if it's not a fake.
                if (!is_a($container->findDefinition($id)->getClass(), '\\eZ\\Publish\\Core\\FieldType\\Null\\Type', true)) {
                    $fieldTypeCollectionFactoryDef->addMethodCall('registerConcreteFieldTypeIdentifier', array($attribute['alias']));
                }
            }
        }
    }
FieldTypeCollectionPass