original_string: public function uninstall($module_id)
      {
          try {
              $result = $this->canUninstall($module_id);
          } catch (Exception $ex) {
              $result = $ex->getMessage();
          }
  
          $this->hook->attach("module.uninstall.before|$module_id", $result, $this);
  
          if ($result !== true) {
              return $result;
          }
  
          $this->module->delete($module_id);
          $this->setOverrideConfig();
  
          $this->hook->attach("module.uninstall.after|$module_id", $result, $this);
          return $result;
      }
code: public function uninstall($module_id)
      {
          try {
              $result = $this->canUninstall($module_id);
          } catch (Exception $ex) {
              $result = $ex->getMessage();
          }
  
          $this->hook->attach("module.uninstall.before|$module_id", $result, $this);
  
          if ($result !== true) {
              return $result;
          }
  
          $this->module->delete($module_id);
          $this->setOverrideConfig();
  
          $this->hook->attach("module.uninstall.after|$module_id", $result, $this);
          return $result;
      }
code_tokens: public function uninstall ( $ module_id ) { try { $ result = $ this -> canUninstall ( $ module_id ) ; } catch ( Exception $ ex ) { $ result = $ ex -> getMessage ( ) ; } $ this -> hook -> attach ( "module.uninstall.before|$module_id" , $ result , $ this ) ; if ( $ result !== true ) { return $ result ; } $ this -> module -> delete ( $ module_id ) ; $ this -> setOverrideConfig ( ) ; $ this -> hook -> attach ( "module.uninstall.after|$module_id" , $ result , $ this ) ; return $ result ; }
docstring: Un-install a module
  @param string $module_id
  @return mixed
docstring_tokens: Un - install a module