original_string: public function attach($hook, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null)
      {
          $module_id = null;
  
          if (strpos($hook, '|') !== false) {
              list($hook, $module_id) = explode('|', $hook, 2);
          }
  
          $method = $this->getMethod($hook);
  
          if (isset($module_id)) {
              $class = $this->module->getClass($module_id);
              return $this->call($class, $method, $a, $b, $c, $d, $e);
          }
  
          if (empty($this->hooks[$method])) {
              return false;
          }
  
          foreach (array_keys($this->hooks[$method]) as $class) {
              $this->call($class, $method, $a, $b, $c, $d, $e);
          }
  
          return true;
      }
code: public function attach($hook, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null)
      {
          $module_id = null;
  
          if (strpos($hook, '|') !== false) {
              list($hook, $module_id) = explode('|', $hook, 2);
          }
  
          $method = $this->getMethod($hook);
  
          if (isset($module_id)) {
              $class = $this->module->getClass($module_id);
              return $this->call($class, $method, $a, $b, $c, $d, $e);
          }
  
          if (empty($this->hooks[$method])) {
              return false;
          }
  
          foreach (array_keys($this->hooks[$method]) as $class) {
              $this->call($class, $method, $a, $b, $c, $d, $e);
          }
  
          return true;
      }
code_tokens: public function attach ( $ hook , & $ a = null , & $ b = null , & $ c = null , & $ d = null , & $ e = null ) { $ module_id = null ; if ( strpos ( $ hook , '|' ) !== false ) { list ( $ hook , $ module_id ) = explode ( '|' , $ hook , 2 ) ; } $ method = $ this -> getMethod ( $ hook ) ; if ( isset ( $ module_id ) ) { $ class = $ this -> module -> getClass ( $ module_id ) ; return $ this -> call ( $ class , $ method , $ a , $ b , $ c , $ d , $ e ) ; } if ( empty ( $ this -> hooks [ $ method ] ) ) { return false ; } foreach ( array_keys ( $ this -> hooks [ $ method ] ) as $ class ) { $ this -> call ( $ class , $ method , $ a , $ b , $ c , $ d , $ e ) ; } return true ; }
docstring: Call all defined functions for the hook
  @param string $hook
  @param mixed $a
  @param mixed $b
  @param mixed $c
  @param mixed $d
  @param mixed $e
  @return boolean
docstring_tokens: Call all defined functions for the hook