Sulu\Bundle\ContentBundle\DependencyInjection\Compiler\WebspacesPass::process PHP Метод

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

public process ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function process(ContainerBuilder $container)
    {
        $directory = $container->getParameter('sulu_core.webspace.config_dir');
        if (!$container->hasExtension('sulu_search') || !file_exists($directory)) {
            return;
        }
        $indexes = $container->getParameter('sulu_search.indexes');
        $finder = new Finder();
        $finder->in($directory)->files()->name('*.xml')->sortByName();
        foreach ($finder as $file) {
            /** @var SplFileInfo $file */
            $webspaceConfig = simplexml_load_file($file->getPathName());
            $webspaceConfig->registerXPathNamespace('x', 'http://schemas.sulu.io/webspace/webspace');
            $webspaceKey = (string) $webspaceConfig->xpath('/x:webspace/x:key')[0];
            $webspaceName = (string) $webspaceConfig->xpath('/x:webspace/x:name')[0];
            $indexes['page_' . $webspaceKey] = ['security_context' => 'sulu.webspaces.' . $webspaceKey, 'name' => $webspaceName];
            $indexes['page_' . $webspaceKey . '_published'] = ['security_context' => 'sulu.webspaces.' . $webspaceKey, 'name' => $webspaceName, 'contexts' => ['website']];
        }
        $container->setParameter('sulu_search.indexes', $indexes);
    }
WebspacesPass