original_string: public static function factory($aOptions){
  		if($aOptions instanceof \Traversable)$aOptions = \Zend\Stdlib\ArrayUtils::iteratorToArray($aOptions);
  		elseif(!is_array($aOptions))throw new \InvalidArgumentException(__METHOD__.' expects an array or Traversable object; received "'.(is_object($aOptions)?get_class($aOptions):gettype($aOptions)).'"');
  		return new static(new \TreeLayoutStack\TemplatingConfiguration($aOptions));
  	}
code: public static function factory($aOptions){
  		if($aOptions instanceof \Traversable)$aOptions = \Zend\Stdlib\ArrayUtils::iteratorToArray($aOptions);
  		elseif(!is_array($aOptions))throw new \InvalidArgumentException(__METHOD__.' expects an array or Traversable object; received "'.(is_object($aOptions)?get_class($aOptions):gettype($aOptions)).'"');
  		return new static(new \TreeLayoutStack\TemplatingConfiguration($aOptions));
  	}
code_tokens: public static function factory ( $ aOptions ) { if ( $ aOptions instanceof \ Traversable ) $ aOptions = \ Zend \ Stdlib \ ArrayUtils :: iteratorToArray ( $ aOptions ) ; elseif ( ! is_array ( $ aOptions ) ) throw new \ InvalidArgumentException ( __METHOD__ . ' expects an array or Traversable object; received "' . ( is_object ( $ aOptions ) ? get_class ( $ aOptions ) : gettype ( $ aOptions ) ) . '"' ) ; return new static ( new \ TreeLayoutStack \ TemplatingConfiguration ( $ aOptions ) ) ; }
docstring: Instantiate a Templating service
  @param array|Traversable $aOptions
  @throws \InvalidArgumentException
  @return \TreeLayoutStack\TemplatingService
docstring_tokens: Instantiate a Templating service