src/Graviton/DocumentBundle/DependencyInjection/Compiler/ExtRefFieldsCompilerPass.php
public function process(ContainerBuilder $container)
    {
        $this->documentMap = $container->get('graviton.document.map');

        $map = [];

        $services = array_keys($container->findTaggedServiceIds('graviton.rest'));
        foreach ($services as $id) {
            list($ns, $bundle, , $doc) = explode('.', $id);
            if (empty($bundle) || empty($doc)) {
                continue;
            }
            if ($bundle === 'core' && $doc === 'main') {
                continue;
            }

            $className = $this->getServiceDocument(
                $container->getDefinition($id),
                $ns,
                $bundle,
                $doc
            );
            $extRefFields = $this->processDocument($this->documentMap->getDocument($className));
            $routePrefix = strtolower($ns.'.'.$bundle.'.'.'rest'.'.'.$doc);

            $map[$routePrefix.'.get'] = $extRefFields;
            $map[$routePrefix.'.all'] = $extRefFields;
        }

        $container->setParameter('graviton.document.extref.fields', $map);
    }
public function process(ContainerBuilder $container)
    {
        $this->documentMap = $container->get('graviton.document.map');

        $map = [];

        $services = array_keys($container->findTaggedServiceIds('graviton.rest'));
        foreach ($services as $id) {
            list($ns, $bundle, , $doc) = explode('.', $id);
            if (empty($bundle) || empty($doc)) {
                continue;
            }
            if ($bundle === 'core' && $doc === 'main') {
                continue;
            }

            $className = $this->getServiceDocument(
                $container->getDefinition($id),
                $ns,
                $bundle,
                $doc
            );
            $extRefFields = $this->processDocument($this->documentMap->getDocument($className));
            $routePrefix = strtolower($ns.'.'.$bundle.'.'.'rest'.'.'.$doc);

            $map[$routePrefix.'.get'] = $extRefFields;
            $map[$routePrefix.'.all'] = $extRefFields;
        }

        $container->setParameter('graviton.document.extref.fields', $map);
    }
public function process ( ContainerBuilder $ container ) { $ this -> documentMap = $ container -> get ( 'graviton.document.map' ) ; $ map = [ ] ; $ services = array_keys ( $ container -> findTaggedServiceIds ( 'graviton.rest' ) ) ; foreach ( $ services as $ id ) { list ( $ ns , $ bundle , , $ doc ) = explode ( '.' , $ id ) ; if ( empty ( $ bundle ) || empty ( $ doc ) ) { continue ; } if ( $ bundle === 'core' && $ doc === 'main' ) { continue ; } $ className = $ this -> getServiceDocument ( $ container -> getDefinition ( $ id ) , $ ns , $ bundle , $ doc ) ; $ extRefFields = $ this -> processDocument ( $ this -> documentMap -> getDocument ( $ className ) ) ; $ routePrefix = strtolower ( $ ns . '.' . $ bundle . '.' . 'rest' . '.' . $ doc ) ; $ map [ $ routePrefix . '.get' ] = $ extRefFields ; $ map [ $ routePrefix . '.all' ] = $ extRefFields ; } $ container -> setParameter ( 'graviton.document.extref.fields' , $ map ) ; }
Make extref fields map and set it to parameter

@param ContainerBuilder $container container builder
@return void
Make extref fields map and set it to parameter