original_string: public function setConfig($key, $value = null)
      {
          $configurator = $this->getConfigurator();
          if(!is_scalar($key)){
              $configuratorClass = get_class($configurator);
              $configurator->merge(new $configuratorClass($key, true));
          }else{
              $configurator[$key] = $value;
          }
  
          return $this;
      }
code: public function setConfig($key, $value = null)
      {
          $configurator = $this->getConfigurator();
          if(!is_scalar($key)){
              $configuratorClass = get_class($configurator);
              $configurator->merge(new $configuratorClass($key, true));
          }else{
              $configurator[$key] = $value;
          }
  
          return $this;
      }
code_tokens: public function setConfig ( $ key , $ value = null ) { $ configurator = $ this -> getConfigurator ( ) ; if ( ! is_scalar ( $ key ) ) { $ configuratorClass = get_class ( $ configurator ) ; $ configurator -> merge ( new $ configuratorClass ( $ key , true ) ) ; } else { $ configurator [ $ key ] = $ value ; } return $ this ; }
docstring: Set a config item. Add recursive if key is traversable.
  
  @param string|array|\Traversable $key
  @param mixed $value
  
  @return $this
docstring_tokens: Set a config item . Add recursive if key is traversable .