DEV Community 👩‍💻👨‍💻

Cover image for Drupal 8/9: Listing all available entity types
TrainingCloud.io
TrainingCloud.io

Posted on

Drupal 8/9: Listing all available entity types

Whether you're new to Drupal or you're working on a complex site you didn't build yourself, it's not always easy to keep an overview of the site's available entity types.

Here are two quick ways to help you gain insight into your Drupal entity types:

Option 1. Using Drupal Console

If you have Drupal Console installed, you can run the following anywhere inside your Drupal project:

drupal debug:entity
Enter fullscreen mode Exit fullscreen mode

or its shorter alias de:

drupal de
Enter fullscreen mode Exit fullscreen mode

Sample output

--------------------------- --------------- 
  Entity name                 Entity type    
 --------------------------- --------------- 
  comment                     Content        
  contact_message             Content        
  node                        Content        
  block_content               Content        
  menu_link_content           Content        
  file                        Content        
  group                       Content        
  group_content               Content        
  shortcut                    Content        
  taxonomy_term               Content        
  path_alias                  Content        
  user                        Content        
  action                      Configuration  
  base_field_override         Configuration  
  block                       Configuration  
  comment_type                Configuration  
  contact_form                Configuration  
  language_content_settings   Configuration  
  node_type                   Configuration  
  block_content_type          Configuration  
  [...]
Enter fullscreen mode Exit fullscreen mode

Option 2: Using a code snippet

$entity_types = Drupal::entityTypeManager()->getDefinitions();

$result = [];
foreach ($entity_types as $name => $entity_type) {
  $result[$name] = [
    'group' => $entity_type->getGroupLabel()->render(),
    'class' => $entity_type->getClass(),
    'provided by' => $entity_type->getProvider(),
  ];
}

// Sort alphabetically by key and print result.
ksort($result);
print_r($result);
Enter fullscreen mode Exit fullscreen mode

You could save this as a standalone php script (let's name it entities.php, and run it with drush or Drupal Console:

drush scr path/to/entities.php
Enter fullscreen mode Exit fullscreen mode

or

drupal snippet --file=/full/path/to/entities.php
Enter fullscreen mode Exit fullscreen mode

Sample output

[action] => Array
    (
        [group] => Configuration
        [class] => Drupal\system\Entity\Action
        [provided by] => system
    )

[base_field_override] => Array
    (
        [group] => Configuration
        [class] => Drupal\Core\Field\Entity\BaseFieldOverride
        [provided by] => core
    )

[block] => Array
    (
        [group] => Configuration
        [class] => Drupal\block\Entity\Block
        [provided by] => block
    )

[block_content] => Array
    (
        [group] => Content
        [class] => Drupal\block_content\Entity\BlockContent
        [provided by] => block_content
    )

[block_content_type] => Array
    (
        [group] => Configuration
        [class] => Drupal\block_content\Entity\BlockContentType
        [provided by] => block_content
    )

[comment] => Array
    (
        [group] => Content
        [class] => Drupal\comment\Entity\Comment
        [provided by] => comment
    )

[comment_type] => Array
    (
        [group] => Configuration
        [class] => Drupal\comment\Entity\CommentType
        [provided by] => comment
    )
[...]
Enter fullscreen mode Exit fullscreen mode

Further Reading


If you liked this article, you'll love our courses on Drupal 8/9 Site Building, Module Development, and Theme Development.

TrainingCloud: Drupal and PHP training for (aspiring) developers


Credits

Top comments (0)

🤔 Did you know?

 
🌚 You can turn on dark mode in Settings