original_string: protected function detectMethods()
      {
  
          foreach ($this->classes as $class) {
              $reflection = new \ReflectionClass($class);
  
              $methods = $reflection->getMethods(\ReflectionMethod::IS_PUBLIC);
              if ($methods) {
                  foreach ($methods as $method) {
                      if (!in_array($method->name, $this->usedMethods)) {
                          // Only add the methods to the output when the root is not the same as the class.
                          // And don't add the __*() methods
                          if ($this->extends !== $class && substr($method->name, 0, 2) !== '__') {
                              $this->methods[] = new Method(
                                  $method,
                                  $this->alias,
                                  $reflection,
                                  $method->name,
                                  $this->interfaces
                              );
                          }
                          $this->usedMethods[] = $method->name;
                      }
                  }
              }
  
              // Check if the class is macroable
              $traits = collect($reflection->getTraitNames());
              if ($traits->contains('Illuminate\Support\Traits\Macroable')) {
                  $properties = $reflection->getStaticProperties();
                  $macros = isset($properties['macros']) ? $properties['macros'] : [];
                  foreach ($macros as $macro_name => $macro_func) {
                      if (!in_array($macro_name, $this->usedMethods)) {
                          // Add macros
                          $this->methods[] = new Macro(
                              $this->getMacroFunction($macro_func),
                              $this->alias,
                              $reflection,
                              $macro_name,
                              $this->interfaces
                          );
                          $this->usedMethods[] = $macro_name;
                      }
                  }
              }
          }
      }
code: protected function detectMethods()
      {
  
          foreach ($this->classes as $class) {
              $reflection = new \ReflectionClass($class);
  
              $methods = $reflection->getMethods(\ReflectionMethod::IS_PUBLIC);
              if ($methods) {
                  foreach ($methods as $method) {
                      if (!in_array($method->name, $this->usedMethods)) {
                          // Only add the methods to the output when the root is not the same as the class.
                          // And don't add the __*() methods
                          if ($this->extends !== $class && substr($method->name, 0, 2) !== '__') {
                              $this->methods[] = new Method(
                                  $method,
                                  $this->alias,
                                  $reflection,
                                  $method->name,
                                  $this->interfaces
                              );
                          }
                          $this->usedMethods[] = $method->name;
                      }
                  }
              }
  
              // Check if the class is macroable
              $traits = collect($reflection->getTraitNames());
              if ($traits->contains('Illuminate\Support\Traits\Macroable')) {
                  $properties = $reflection->getStaticProperties();
                  $macros = isset($properties['macros']) ? $properties['macros'] : [];
                  foreach ($macros as $macro_name => $macro_func) {
                      if (!in_array($macro_name, $this->usedMethods)) {
                          // Add macros
                          $this->methods[] = new Macro(
                              $this->getMacroFunction($macro_func),
                              $this->alias,
                              $reflection,
                              $macro_name,
                              $this->interfaces
                          );
                          $this->usedMethods[] = $macro_name;
                      }
                  }
              }
          }
      }
code_tokens: protected function detectMethods ( ) { foreach ( $ this -> classes as $ class ) { $ reflection = new \ ReflectionClass ( $ class ) ; $ methods = $ reflection -> getMethods ( \ ReflectionMethod :: IS_PUBLIC ) ; if ( $ methods ) { foreach ( $ methods as $ method ) { if ( ! in_array ( $ method -> name , $ this -> usedMethods ) ) { // Only add the methods to the output when the root is not the same as the class. // And don't add the __*() methods if ( $ this -> extends !== $ class && substr ( $ method -> name , 0 , 2 ) !== '__' ) { $ this -> methods [ ] = new Method ( $ method , $ this -> alias , $ reflection , $ method -> name , $ this -> interfaces ) ; } $ this -> usedMethods [ ] = $ method -> name ; } } } // Check if the class is macroable $ traits = collect ( $ reflection -> getTraitNames ( ) ) ; if ( $ traits -> contains ( 'Illuminate\Support\Traits\Macroable' ) ) { $ properties = $ reflection -> getStaticProperties ( ) ; $ macros = isset ( $ properties [ 'macros' ] ) ? $ properties [ 'macros' ] : [ ] ; foreach ( $ macros as $ macro_name => $ macro_func ) { if ( ! in_array ( $ macro_name , $ this -> usedMethods ) ) { // Add macros $ this -> methods [ ] = new Macro ( $ this -> getMacroFunction ( $ macro_func ) , $ this -> alias , $ reflection , $ macro_name , $ this -> interfaces ) ; $ this -> usedMethods [ ] = $ macro_name ; } } } } }
docstring: Get the methods for one or multiple classes.
  
  @return string
docstring_tokens: Get the methods for one or multiple classes .