original_string: public function applyConfig(array $config = []) {
          $parent = $this;
          $defaults = isset($this->_config) ? $this->_config : [];
  
          // Inherit config from parents
          while ($parent = get_parent_class($parent)) {
              $props = get_class_vars($parent);
  
              if (isset($props['_config'])) {
                  $defaults = Hash::merge($props['_config'], $defaults);
              }
          }
  
          $this->__config = new ConfigAugment($config, $defaults);
  
          return $this;
      }
code: public function applyConfig(array $config = []) {
          $parent = $this;
          $defaults = isset($this->_config) ? $this->_config : [];
  
          // Inherit config from parents
          while ($parent = get_parent_class($parent)) {
              $props = get_class_vars($parent);
  
              if (isset($props['_config'])) {
                  $defaults = Hash::merge($props['_config'], $defaults);
              }
          }
  
          $this->__config = new ConfigAugment($config, $defaults);
  
          return $this;
      }
code_tokens: public function applyConfig ( array $ config = [ ] ) { $ parent = $ this ; $ defaults = isset ( $ this -> _config ) ? $ this -> _config : [ ] ; // Inherit config from parents while ( $ parent = get_parent_class ( $ parent ) ) { $ props = get_class_vars ( $ parent ) ; if ( isset ( $ props [ '_config' ] ) ) { $ defaults = Hash :: merge ( $ props [ '_config' ] , $ defaults ) ; } } $ this -> __config = new ConfigAugment ( $ config , $ defaults ) ; return $ this ; }
docstring: Merge the custom configuration with the defaults and inherit from parent classes.
  
  @uses Titon\Utility\Hash
  
  @param array $config
  @return $this
docstring_tokens: Merge the custom configuration with the defaults and inherit from parent classes .