Sulu\Bundle\DocumentManagerBundle\DependencyInjection\SuluDocumentManagerExtension::prepend PHP Метод

prepend() публичный Метод

public prepend ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function prepend(ContainerBuilder $container)
    {
        $preview = $container->hasParameter('sulu.preview') ? $container->getParameter('sulu.preview') : false;
        $context = $container->getParameter('sulu.context');
        $configs = $container->getExtensionConfig($this->getAlias());
        $parameterBag = $container->getParameterBag();
        $configs = $parameterBag->resolveValue($configs);
        $config = $this->processConfiguration(new Configuration(), $configs);
        // FIXME: The entire foreach can be removed when upgrading to DoctrinePhpcrBundle 1.3
        // see https://github.com/doctrine/DoctrinePHPCRBundle/issues/178
        foreach ($config['sessions'] as &$session) {
            if (isset($session['backend'])) {
                $session['backend']['check_login_on_server'] = false;
            }
        }
        $liveSession = 'live';
        if (isset($config['live_session'])) {
            $liveSession = $config['live_session'];
        }
        $defaultSession = 'default';
        if (!$preview && isset($config['default_session'])) {
            $defaultSession = $config['default_session'];
        }
        if (!$preview && $context === SuluKernel::CONTEXT_WEBSITE) {
            $defaultSession = $liveSession;
        }
        $container->prependExtensionConfig('sulu_document_manager', ['default_session' => $defaultSession, 'live_session' => $liveSession]);
        if ($container->hasExtension('doctrine_phpcr')) {
            $doctrinePhpcrConfig = ['odm' => [], 'session' => ['sessions' => $config['sessions']]];
            $doctrinePhpcrConfig['session']['default_session'] = $defaultSession;
            $container->prependExtensionConfig('doctrine_phpcr', $doctrinePhpcrConfig);
        }
        if ($container->hasExtension('jms_serializer')) {
            $container->prependExtensionConfig('jms_serializer', ['metadata' => ['directories' => [['path' => __DIR__ . '/../Resources/config/serializer', 'namespace_prefix' => 'Sulu\\Component\\DocumentManager']]]]);
        }
        if ($container->hasExtension('fos_rest')) {
            $container->prependExtensionConfig('fos_rest', ['exception' => ['codes' => ['Sulu\\Component\\DocumentManager\\Exception\\DocumentNotFoundException' => 404, 'Sulu\\Component\\Content\\Exception\\MandatoryPropertyException' => 400]]]);
        }
    }