private function getArgumentsAsPhp(SimpleXMLElement $xml, $name, $lowercase = true)
    {
        $arguments = array();
        foreach ($xml->$name as $arg) {
            if (isset($arg['name'])) {
                $arg['key'] = (string) $arg['name'];
            }
            $key = isset($arg['key']) ? (string) $arg['key'] : (!$arguments ? 0 : max(array_keys($arguments)) + 1);

            // parameter keys are case insensitive
            if ('parameter' == $name && $lowercase) {
                $key = strtolower($key);
            }

            // this is used by DefinitionDecorator to overwrite a specific
            // argument of the parent definition
            if (isset($arg['index'])) {
                $key = 'index_'.$arg['index'];
            }

            switch ($arg['type']) {
                case 'service':
                    $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
                    if (isset($arg['on-invalid']) && 'ignore' == $arg['on-invalid']) {
                        $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
                    } elseif (isset($arg['on-invalid']) && 'null' == $arg['on-invalid']) {
                        $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
                    }

                    if (isset($arg['strict'])) {
                        $strict = XmlUtils::phpize($arg['strict']);
                    } else {
                        $strict = true;
                    }

                    $arguments[$key] = new Reference((string) $arg['id'], $invalidBehavior, $strict);
                    break;
                case 'expression':
                    $arguments[$key] = new Expression((string) $arg);
                    break;
                case 'collection':
                    $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, false);
                    break;
                case 'string':
                    $arguments[$key] = (string) $arg;
                    break;
                case 'constant':
                    $arguments[$key] = constant((string) $arg);
                    break;
                default:
                    $arguments[$key] = XmlUtils::phpize($arg);
            }
        }

        return $arguments;
    }
private function getArgumentsAsPhp(SimpleXMLElement $xml, $name, $lowercase = true)
    {
        $arguments = array();
        foreach ($xml->$name as $arg) {
            if (isset($arg['name'])) {
                $arg['key'] = (string) $arg['name'];
            }
            $key = isset($arg['key']) ? (string) $arg['key'] : (!$arguments ? 0 : max(array_keys($arguments)) + 1);

            // parameter keys are case insensitive
            if ('parameter' == $name && $lowercase) {
                $key = strtolower($key);
            }

            // this is used by DefinitionDecorator to overwrite a specific
            // argument of the parent definition
            if (isset($arg['index'])) {
                $key = 'index_'.$arg['index'];
            }

            switch ($arg['type']) {
                case 'service':
                    $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
                    if (isset($arg['on-invalid']) && 'ignore' == $arg['on-invalid']) {
                        $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
                    } elseif (isset($arg['on-invalid']) && 'null' == $arg['on-invalid']) {
                        $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
                    }

                    if (isset($arg['strict'])) {
                        $strict = XmlUtils::phpize($arg['strict']);
                    } else {
                        $strict = true;
                    }

                    $arguments[$key] = new Reference((string) $arg['id'], $invalidBehavior, $strict);
                    break;
                case 'expression':
                    $arguments[$key] = new Expression((string) $arg);
                    break;
                case 'collection':
                    $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, false);
                    break;
                case 'string':
                    $arguments[$key] = (string) $arg;
                    break;
                case 'constant':
                    $arguments[$key] = constant((string) $arg);
                    break;
                default:
                    $arguments[$key] = XmlUtils::phpize($arg);
            }
        }

        return $arguments;
    }
private function getArgumentsAsPhp ( SimpleXMLElement $ xml , $ name , $ lowercase = true ) { $ arguments = array ( ) ; foreach ( $ xml -> $ name as $ arg ) { if ( isset ( $ arg [ 'name' ] ) ) { $ arg [ 'key' ] = ( string ) $ arg [ 'name' ] ; } $ key = isset ( $ arg [ 'key' ] ) ? ( string ) $ arg [ 'key' ] : ( ! $ arguments ? 0 : max ( array_keys ( $ arguments ) ) + 1 ) ; // parameter keys are case insensitive if ( 'parameter' == $ name && $ lowercase ) { $ key = strtolower ( $ key ) ; } // this is used by DefinitionDecorator to overwrite a specific // argument of the parent definition if ( isset ( $ arg [ 'index' ] ) ) { $ key = 'index_' . $ arg [ 'index' ] ; } switch ( $ arg [ 'type' ] ) { case 'service' : $ invalidBehavior = ContainerInterface :: EXCEPTION_ON_INVALID_REFERENCE ; if ( isset ( $ arg [ 'on-invalid' ] ) && 'ignore' == $ arg [ 'on-invalid' ] ) { $ invalidBehavior = ContainerInterface :: IGNORE_ON_INVALID_REFERENCE ; } elseif ( isset ( $ arg [ 'on-invalid' ] ) && 'null' == $ arg [ 'on-invalid' ] ) { $ invalidBehavior = ContainerInterface :: NULL_ON_INVALID_REFERENCE ; } if ( isset ( $ arg [ 'strict' ] ) ) { $ strict = XmlUtils :: phpize ( $ arg [ 'strict' ] ) ; } else { $ strict = true ; } $ arguments [ $ key ] = new Reference ( ( string ) $ arg [ 'id' ] , $ invalidBehavior , $ strict ) ; break ; case 'expression' : $ arguments [ $ key ] = new Expression ( ( string ) $ arg ) ; break ; case 'collection' : $ arguments [ $ key ] = $ this -> getArgumentsAsPhp ( $ arg , $ name , false ) ; break ; case 'string' : $ arguments [ $ key ] = ( string ) $ arg ; break ; case 'constant' : $ arguments [ $ key ] = constant ( ( string ) $ arg ) ; break ; default : $ arguments [ $ key ] = XmlUtils :: phpize ( $ arg ) ; } } return $ arguments ; }
Returns arguments as valid PHP types.

@param SimpleXMLElement $xml
@param $name
@param bool $lowercase
@return array
Returns arguments as valid PHP types .