original_string: public function removePlugin($key) {
          if (!isset($this->plugins[$key])) {
              return $this;
          }
          if (method_exists($this->plugins[$key], 'unconfigure')) {
              $this->plugins[$key]->unconfigure($this);
          }
          unset($this->plugins[$key]);
          return $this;
      }
code: public function removePlugin($key) {
          if (!isset($this->plugins[$key])) {
              return $this;
          }
          if (method_exists($this->plugins[$key], 'unconfigure')) {
              $this->plugins[$key]->unconfigure($this);
          }
          unset($this->plugins[$key]);
          return $this;
      }
code_tokens: public function removePlugin ( $ key ) { if ( ! isset ( $ this -> plugins [ $ key ] ) ) { return $ this ; } if ( method_exists ( $ this -> plugins [ $ key ] , 'unconfigure' ) ) { $ this -> plugins [ $ key ] -> unconfigure ( $ this ) ; } unset ( $ this -> plugins [ $ key ] ) ; return $ this ; }
docstring: Remove a plugin and its events by the key
  
  @param string $key the key used in TcTable::addPlugin()
  @return TcTable
docstring_tokens: Remove a plugin and its events by the key