protected function parseService($id, $service, $file)
    {
        if ((string) $service['alias']) {
            $public = true;
            if (isset($service['public'])) {
                $public = $this->getAttributeAsPhp($service, 'public');
            }
            $this->container->setAlias($id, new Alias((string) $service['alias'], $public));

            return;
        }

        if (isset($service['parent'])) {
            $definition = new DefinitionDecorator((string) $service['parent']);
        } else {
            $definition = new Definition();
        }

        foreach (array('class', 'scope', 'public', 'factory-class', 'factory-method', 'factory-service', 'synthetic', 'abstract') as $key) {
            if (isset($service[$key])) {
                $method = 'set'.str_replace('-', '', $key);
                $definition->$method((string) $this->getAttributeAsPhp($service, $key));
            }
        }

        if ($service->file) {
            $definition->setFile((string) $service->file);
        }

        $definition->setArguments($this->getArgumentsAsPhp($service, 'argument'));
        $definition->setProperties($this->getArgumentsAsPhp($service, 'property'));

        if (isset($service->configurator)) {
            if (isset($service->configurator['function'])) {
                $definition->setConfigurator((string) $service->configurator['function']);
            } else {
                if (isset($service->configurator['service'])) {
                    $class = new Reference((string) $service->configurator['service'], ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false);
                } else {
                    $class = (string) $service->configurator['class'];
                }

                $definition->setConfigurator(array($class, (string) $service->configurator['method']));
            }
        }

        foreach ($service->call as $call) {
            $definition->addMethodCall((string) $call['method'], $this->getArgumentsAsPhp($call, 'argument'));
        }

        foreach ($service->tag as $tag) {
            $parameters = array();
            foreach ($tag->attributes() as $name => $value) {
                if ('name' === $name) {
                    continue;
                }

                $parameters[$name] = XmlUtils::phpize($value);
            }

            $definition->addTag((string) $tag['name'], $parameters);
        }

        return $definition;
    }
protected function parseService($id, $service, $file)
    {
        if ((string) $service['alias']) {
            $public = true;
            if (isset($service['public'])) {
                $public = $this->getAttributeAsPhp($service, 'public');
            }
            $this->container->setAlias($id, new Alias((string) $service['alias'], $public));

            return;
        }

        if (isset($service['parent'])) {
            $definition = new DefinitionDecorator((string) $service['parent']);
        } else {
            $definition = new Definition();
        }

        foreach (array('class', 'scope', 'public', 'factory-class', 'factory-method', 'factory-service', 'synthetic', 'abstract') as $key) {
            if (isset($service[$key])) {
                $method = 'set'.str_replace('-', '', $key);
                $definition->$method((string) $this->getAttributeAsPhp($service, $key));
            }
        }

        if ($service->file) {
            $definition->setFile((string) $service->file);
        }

        $definition->setArguments($this->getArgumentsAsPhp($service, 'argument'));
        $definition->setProperties($this->getArgumentsAsPhp($service, 'property'));

        if (isset($service->configurator)) {
            if (isset($service->configurator['function'])) {
                $definition->setConfigurator((string) $service->configurator['function']);
            } else {
                if (isset($service->configurator['service'])) {
                    $class = new Reference((string) $service->configurator['service'], ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, false);
                } else {
                    $class = (string) $service->configurator['class'];
                }

                $definition->setConfigurator(array($class, (string) $service->configurator['method']));
            }
        }

        foreach ($service->call as $call) {
            $definition->addMethodCall((string) $call['method'], $this->getArgumentsAsPhp($call, 'argument'));
        }

        foreach ($service->tag as $tag) {
            $parameters = array();
            foreach ($tag->attributes() as $name => $value) {
                if ('name' === $name) {
                    continue;
                }

                $parameters[$name] = XmlUtils::phpize($value);
            }

            $definition->addTag((string) $tag['name'], $parameters);
        }

        return $definition;
    }
protected function parseService ( $ id , $ service , $ file ) { if ( ( string ) $ service [ 'alias' ] ) { $ public = true ; if ( isset ( $ service [ 'public' ] ) ) { $ public = $ this -> getAttributeAsPhp ( $ service , 'public' ) ; } $ this -> container -> setAlias ( $ id , new Alias ( ( string ) $ service [ 'alias' ] , $ public ) ) ; return ; } if ( isset ( $ service [ 'parent' ] ) ) { $ definition = new DefinitionDecorator ( ( string ) $ service [ 'parent' ] ) ; } else { $ definition = new Definition ( ) ; } foreach ( array ( 'class' , 'scope' , 'public' , 'factory-class' , 'factory-method' , 'factory-service' , 'synthetic' , 'abstract' ) as $ key ) { if ( isset ( $ service [ $ key ] ) ) { $ method = 'set' . str_replace ( '-' , '' , $ key ) ; $ definition -> $ method ( ( string ) $ this -> getAttributeAsPhp ( $ service , $ key ) ) ; } } if ( $ service -> file ) { $ definition -> setFile ( ( string ) $ service -> file ) ; } $ definition -> setArguments ( $ this -> getArgumentsAsPhp ( $ service , 'argument' ) ) ; $ definition -> setProperties ( $ this -> getArgumentsAsPhp ( $ service , 'property' ) ) ; if ( isset ( $ service -> configurator ) ) { if ( isset ( $ service -> configurator [ 'function' ] ) ) { $ definition -> setConfigurator ( ( string ) $ service -> configurator [ 'function' ] ) ; } else { if ( isset ( $ service -> configurator [ 'service' ] ) ) { $ class = new Reference ( ( string ) $ service -> configurator [ 'service' ] , ContainerInterface :: EXCEPTION_ON_INVALID_REFERENCE , false ) ; } else { $ class = ( string ) $ service -> configurator [ 'class' ] ; } $ definition -> setConfigurator ( array ( $ class , ( string ) $ service -> configurator [ 'method' ] ) ) ; } } foreach ( $ service -> call as $ call ) { $ definition -> addMethodCall ( ( string ) $ call [ 'method' ] , $ this -> getArgumentsAsPhp ( $ call , 'argument' ) ) ; } foreach ( $ service -> tag as $ tag ) { $ parameters = array ( ) ; foreach ( $ tag -> attributes ( ) as $ name => $ value ) { if ( 'name' === $ name ) { continue ; } $ parameters [ $ name ] = XmlUtils :: phpize ( $ value ) ; } $ definition -> addTag ( ( string ) $ tag [ 'name' ] , $ parameters ) ; } return $ definition ; }
Parses an individual Definition

@param  string           $id
@param  SimpleXMLElement $service
@param  string           $file
@return Definition
Parses an individual Definition