original_string: public function listComponentDetails()
      {
          if ($this->detailsCache !== null) {
              return $this->detailsCache;
          }
  
          $details = [];
          foreach ($this->listComponents() as $componentAlias => $componentClass) {
              $details[$componentAlias] = $this->makeComponent($componentClass)->componentDetails();
          }
  
          return $this->detailsCache = $details;
      }
code: public function listComponentDetails()
      {
          if ($this->detailsCache !== null) {
              return $this->detailsCache;
          }
  
          $details = [];
          foreach ($this->listComponents() as $componentAlias => $componentClass) {
              $details[$componentAlias] = $this->makeComponent($componentClass)->componentDetails();
          }
  
          return $this->detailsCache = $details;
      }
code_tokens: public function listComponentDetails ( ) { if ( $ this -> detailsCache !== null ) { return $ this -> detailsCache ; } $ details = [ ] ; foreach ( $ this -> listComponents ( ) as $ componentAlias => $ componentClass ) { $ details [ $ componentAlias ] = $ this -> makeComponent ( $ componentClass ) -> componentDetails ( ) ; } return $ this -> detailsCache = $ details ; }
docstring: Returns an array of all component detail definitions.
  @return array Array keys are component codes, values are the details defined in the component.
docstring_tokens: Returns an array of all component detail definitions .