src/Graviton/GeneratorBundle/Generator/ResourceGenerator.php
protected function generateSerializer(array $parameters, $dir, $document)
    {
        // @TODO in Embedded and document just render the differences..
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . 'Embedded.xml',
            array_merge(
                $parameters,
                [
                    'document' => $document.'Embedded',
                    'noIdField' => true,
                    'realIdField' => true
                ]
            )
        );

        foreach ($parameters['fields'] as $key => $field) {
            if (substr($field['serializerType'], 0, 14) == 'array<Graviton' &&
                strpos($field['serializerType'], '\\Entity') === false &&
                $field['relType'] == 'embed'
            ) {
                $parameters['fields'][$key]['serializerType'] = substr($field['serializerType'], 0, -1).'Embedded>';
            } elseif (substr($field['serializerType'], 0, 8) == 'Graviton' &&
                strpos($field['serializerType'], '\\Entity') === false &&
                $field['relType'] == 'embed'
            ) {
                $parameters['fields'][$key]['serializerType'] = $field['serializerType'].'Embedded';
            }
        }
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . '.xml',
            array_merge(
                $parameters,
                [
                    'realIdField' => false
                ]
            )
        );
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . 'Base.xml',
            array_merge(
                $parameters,
                [
                    'document' => $document.'Base',
                    'realIdField' => false
                ]
            )
        );
    }
protected function generateSerializer(array $parameters, $dir, $document)
    {
        // @TODO in Embedded and document just render the differences..
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . 'Embedded.xml',
            array_merge(
                $parameters,
                [
                    'document' => $document.'Embedded',
                    'noIdField' => true,
                    'realIdField' => true
                ]
            )
        );

        foreach ($parameters['fields'] as $key => $field) {
            if (substr($field['serializerType'], 0, 14) == 'array<Graviton' &&
                strpos($field['serializerType'], '\\Entity') === false &&
                $field['relType'] == 'embed'
            ) {
                $parameters['fields'][$key]['serializerType'] = substr($field['serializerType'], 0, -1).'Embedded>';
            } elseif (substr($field['serializerType'], 0, 8) == 'Graviton' &&
                strpos($field['serializerType'], '\\Entity') === false &&
                $field['relType'] == 'embed'
            ) {
                $parameters['fields'][$key]['serializerType'] = $field['serializerType'].'Embedded';
            }
        }
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . '.xml',
            array_merge(
                $parameters,
                [
                    'realIdField' => false
                ]
            )
        );
        $this->renderFile(
            'serializer/Document.xml.twig',
            $dir . '/Resources/config/serializer/Document.' . $document . 'Base.xml',
            array_merge(
                $parameters,
                [
                    'document' => $document.'Base',
                    'realIdField' => false
                ]
            )
        );
    }
protected function generateSerializer ( array $ parameters , $ dir , $ document ) { // @TODO in Embedded and document just render the differences.. $ this -> renderFile ( 'serializer/Document.xml.twig' , $ dir . '/Resources/config/serializer/Document.' . $ document . 'Embedded.xml' , array_merge ( $ parameters , [ 'document' => $ document . 'Embedded' , 'noIdField' => true , 'realIdField' => true ] ) ) ; foreach ( $ parameters [ 'fields' ] as $ key => $ field ) { if ( substr ( $ field [ 'serializerType' ] , 0 , 14 ) == 'array<Graviton' && strpos ( $ field [ 'serializerType' ] , '\\Entity' ) === false && $ field [ 'relType' ] == 'embed' ) { $ parameters [ 'fields' ] [ $ key ] [ 'serializerType' ] = substr ( $ field [ 'serializerType' ] , 0 , - 1 ) . 'Embedded>' ; } elseif ( substr ( $ field [ 'serializerType' ] , 0 , 8 ) == 'Graviton' && strpos ( $ field [ 'serializerType' ] , '\\Entity' ) === false && $ field [ 'relType' ] == 'embed' ) { $ parameters [ 'fields' ] [ $ key ] [ 'serializerType' ] = $ field [ 'serializerType' ] . 'Embedded' ; } } $ this -> renderFile ( 'serializer/Document.xml.twig' , $ dir . '/Resources/config/serializer/Document.' . $ document . '.xml' , array_merge ( $ parameters , [ 'realIdField' => false ] ) ) ; $ this -> renderFile ( 'serializer/Document.xml.twig' , $ dir . '/Resources/config/serializer/Document.' . $ document . 'Base.xml' , array_merge ( $ parameters , [ 'document' => $ document . 'Base' , 'realIdField' => false ] ) ) ; }
generate serializer part of a resource

@param array  $parameters twig parameters
@param string $dir        base bundle dir
@param string $document   document name

@return void
generate serializer part of a resource