original_string: protected function _configRead($key)
      {
          if ($key === null) {
              return $this->_config;
          }
  
          if (strpos($key, '.') === false) {
              return isset($this->_config[$key]) ? $this->_config[$key] : null;
          }
  
          $return = $this->_config;
  
          foreach (explode('.', $key) as $k) {
              if (!is_array($return) || !isset($return[$k])) {
                  $return = null;
                  break;
              }
  
              $return = $return[$k];
          }
  
          return $return;
      }
code: protected function _configRead($key)
      {
          if ($key === null) {
              return $this->_config;
          }
  
          if (strpos($key, '.') === false) {
              return isset($this->_config[$key]) ? $this->_config[$key] : null;
          }
  
          $return = $this->_config;
  
          foreach (explode('.', $key) as $k) {
              if (!is_array($return) || !isset($return[$k])) {
                  $return = null;
                  break;
              }
  
              $return = $return[$k];
          }
  
          return $return;
      }
code_tokens: protected function _configRead ( $ key ) { if ( $ key === null ) { return $ this -> _config ; } if ( strpos ( $ key , '.' ) === false ) { return isset ( $ this -> _config [ $ key ] ) ? $ this -> _config [ $ key ] : null ; } $ return = $ this -> _config ; foreach ( explode ( '.' , $ key ) as $ k ) { if ( ! is_array ( $ return ) || ! isset ( $ return [ $ k ] ) ) { $ return = null ; break ; } $ return = $ return [ $ k ] ; } return $ return ; }
docstring: Reads a config key.
  
  @param string|null $key Key to read.
  @return mixed
docstring_tokens: Reads a config key .