DependencyInjection/LexikTranslationExtension.php
protected function buildTranslationStorageDefinition(ContainerBuilder $container, $storage, $objectManager)
    {
        $container->setParameter('lexik_translation.storage.type', $storage);

        if (StorageInterface::STORAGE_ORM == $storage) {
            $args = array(
                new Reference('doctrine'),
                (null === $objectManager) ? 'default' : $objectManager,
            );

            $this->createDoctrineMappingDriver($container, 'lexik_translation.orm.metadata.xml', '%doctrine.orm.metadata.xml.class%');

            $metadataListener = new Definition();
            $metadataListener->setClass('%lexik_translation.orm.listener.class%');
            $metadataListener->addTag('doctrine.event_listener', array(
                'event' => Events::loadClassMetadata,
            ));

            $container->setDefinition('lexik_translation.orm.listener', $metadataListener);

        } elseif (StorageInterface::STORAGE_MONGODB == $storage) {
            $args = array(
                new Reference('doctrine_mongodb'),
                (null === $objectManager) ? 'default' : $objectManager,
            );

            $this->createDoctrineMappingDriver($container, 'lexik_translation.mongodb.metadata.xml', '%doctrine_mongodb.odm.metadata.xml.class%');
        } elseif (StorageInterface::STORAGE_PROPEL == $storage) {
            // In the Propel case the object_manager setting is used for the connection name
            $args = array($objectManager);
        } else {
            throw new \RuntimeException(sprintf('Unsupported storage "%s".', $storage));
        }

        $args[] = array(
            'trans_unit'  => new Parameter(sprintf('lexik_translation.%s.trans_unit.class', $storage)),
            'translation' => new Parameter(sprintf('lexik_translation.%s.translation.class', $storage)),
            'file'        => new Parameter(sprintf('lexik_translation.%s.file.class', $storage)),
        );

        $storageDefinition = new Definition();
        $storageDefinition->setClass($container->getParameter(sprintf('lexik_translation.%s.translation_storage.class', $storage)));
        $storageDefinition->setArguments($args);
        $storageDefinition->setPublic(true);

        $container->setDefinition('lexik_translation.translation_storage', $storageDefinition);
    }
protected function buildTranslationStorageDefinition(ContainerBuilder $container, $storage, $objectManager)
    {
        $container->setParameter('lexik_translation.storage.type', $storage);

        if (StorageInterface::STORAGE_ORM == $storage) {
            $args = array(
                new Reference('doctrine'),
                (null === $objectManager) ? 'default' : $objectManager,
            );

            $this->createDoctrineMappingDriver($container, 'lexik_translation.orm.metadata.xml', '%doctrine.orm.metadata.xml.class%');

            $metadataListener = new Definition();
            $metadataListener->setClass('%lexik_translation.orm.listener.class%');
            $metadataListener->addTag('doctrine.event_listener', array(
                'event' => Events::loadClassMetadata,
            ));

            $container->setDefinition('lexik_translation.orm.listener', $metadataListener);

        } elseif (StorageInterface::STORAGE_MONGODB == $storage) {
            $args = array(
                new Reference('doctrine_mongodb'),
                (null === $objectManager) ? 'default' : $objectManager,
            );

            $this->createDoctrineMappingDriver($container, 'lexik_translation.mongodb.metadata.xml', '%doctrine_mongodb.odm.metadata.xml.class%');
        } elseif (StorageInterface::STORAGE_PROPEL == $storage) {
            // In the Propel case the object_manager setting is used for the connection name
            $args = array($objectManager);
        } else {
            throw new \RuntimeException(sprintf('Unsupported storage "%s".', $storage));
        }

        $args[] = array(
            'trans_unit'  => new Parameter(sprintf('lexik_translation.%s.trans_unit.class', $storage)),
            'translation' => new Parameter(sprintf('lexik_translation.%s.translation.class', $storage)),
            'file'        => new Parameter(sprintf('lexik_translation.%s.file.class', $storage)),
        );

        $storageDefinition = new Definition();
        $storageDefinition->setClass($container->getParameter(sprintf('lexik_translation.%s.translation_storage.class', $storage)));
        $storageDefinition->setArguments($args);
        $storageDefinition->setPublic(true);

        $container->setDefinition('lexik_translation.translation_storage', $storageDefinition);
    }
protected function buildTranslationStorageDefinition ( ContainerBuilder $ container , $ storage , $ objectManager ) { $ container -> setParameter ( 'lexik_translation.storage.type' , $ storage ) ; if ( StorageInterface :: STORAGE_ORM == $ storage ) { $ args = array ( new Reference ( 'doctrine' ) , ( null === $ objectManager ) ? 'default' : $ objectManager , ) ; $ this -> createDoctrineMappingDriver ( $ container , 'lexik_translation.orm.metadata.xml' , '%doctrine.orm.metadata.xml.class%' ) ; $ metadataListener = new Definition ( ) ; $ metadataListener -> setClass ( '%lexik_translation.orm.listener.class%' ) ; $ metadataListener -> addTag ( 'doctrine.event_listener' , array ( 'event' => Events :: loadClassMetadata , ) ) ; $ container -> setDefinition ( 'lexik_translation.orm.listener' , $ metadataListener ) ; } elseif ( StorageInterface :: STORAGE_MONGODB == $ storage ) { $ args = array ( new Reference ( 'doctrine_mongodb' ) , ( null === $ objectManager ) ? 'default' : $ objectManager , ) ; $ this -> createDoctrineMappingDriver ( $ container , 'lexik_translation.mongodb.metadata.xml' , '%doctrine_mongodb.odm.metadata.xml.class%' ) ; } elseif ( StorageInterface :: STORAGE_PROPEL == $ storage ) { // In the Propel case the object_manager setting is used for the connection name $ args = array ( $ objectManager ) ; } else { throw new \ RuntimeException ( sprintf ( 'Unsupported storage "%s".' , $ storage ) ) ; } $ args [ ] = array ( 'trans_unit' => new Parameter ( sprintf ( 'lexik_translation.%s.trans_unit.class' , $ storage ) ) , 'translation' => new Parameter ( sprintf ( 'lexik_translation.%s.translation.class' , $ storage ) ) , 'file' => new Parameter ( sprintf ( 'lexik_translation.%s.file.class' , $ storage ) ) , ) ; $ storageDefinition = new Definition ( ) ; $ storageDefinition -> setClass ( $ container -> getParameter ( sprintf ( 'lexik_translation.%s.translation_storage.class' , $ storage ) ) ) ; $ storageDefinition -> setArguments ( $ args ) ; $ storageDefinition -> setPublic ( true ) ; $ container -> setDefinition ( 'lexik_translation.translation_storage' , $ storageDefinition ) ; }
Build the 'lexik_translation.translation_storage' service definition.

@param ContainerBuilder $container
@param string           $storage
@param string           $objectManager
@throws \RuntimeException
Build the lexik_translation . translation_storage service definition .