Development

Changeset 19632

You must first sign up to be able to contribute.

Changeset 19632

Show
Ignore:
Timestamp:
06/28/09 09:50:27 (8 months ago)
Author:
fabien
Message:

[dependency_injection] simplified sfServiceSimpleXMLElement class and made its behavior more like PHP

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • components/dependency_injection/trunk/lib/sfServiceSimpleXMLElement.php

    r19567 r19632  
    2222  } 
    2323 
    24   public function getArgumentsAsPhp($name = 'argument', $permanent = false
     24  public function getArgumentsAsPhp($name
    2525  { 
    2626    $arguments = array(); 
    2727    foreach ($this->$name as $arg) 
    2828    { 
    29       $key = isset($arg['key']) ? (string) $arg['key'] : count($arguments); 
     29      $key = isset($arg['key']) ? (string) $arg['key'] : (!$arguments ? 0 : max(array_keys($arguments)) + 1); 
    3030 
    31       switch ($arg['type']) 
     31      // parameter keys are case insensitive 
     32      if ('parameter' == $name) 
    3233      { 
    33         case 'collection': 
    34           $arguments[$key] = $arg->getArgumentsAsPhp($permanent ? $name : 'argument'); 
    35           break; 
    36         case 'string': 
    37           $arguments[$key] = (string) $arg; 
    38           break; 
    39         default: 
    40           $arguments[$key] = self::phpize($arg); 
     34        $key = strtolower($key); 
    4135      } 
    42     } 
    43  
    44     return $arguments; 
    45   } 
    46  
    47   public function getArgumentsAsPhpForServices($name = 'argument', $permanent = false) 
    48   { 
    49     $arguments = array(); 
    50     foreach ($this->$name as $arg) 
    51     { 
    52       $key = isset($arg['key']) ? (string) $arg['key'] : count($arguments); 
    5336 
    5437      switch ($arg['type']) 
     
    5841          break; 
    5942        case 'collection': 
    60           $arguments[$key] = $arg->getArgumentsAsPhpForServices($permanent ? $name : 'argument', $permanent); 
     43          $arguments[$key] = $arg->getArgumentsAsPhp($name); 
    6144          break; 
    6245        case 'string': 

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting.
Sensio Labs also supports several large Open-Source projects.