Comment lister tous les types d'entités disponibles?

Réponses:

29

Drupal 7

drush eval "print_r(array_keys(entity_get_info()));"

Drupal 8

drush eval "print_r(array_keys(\Drupal::entityTypeManager()->getDefinitions()));"

selon la suggestion de Jason ,

ou:

drush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()));"

selon la suggestion @RaisinBranCrunch . La note \Drupal::entityManager()est déconseillée dans 8.x.

Kenorb
la source
1
Pour Drupal 8, drush eval "print_r (array_keys (\ Drupal :: entityTypeManager () -> getDefinitions ()));"
Jason
2
Pour moi, ça doit êtredrush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()))";
RaisinBranCrunch
utilisez Cpas E au lieu de e dans EntityManager. drush eval "print_r (array_keys (\ Drupal :: EntityManager () -> getDefinitions‌ ()))"; entityManager est déprécié
Suresh Kumara
1
entityManagerest déconseillé sur les dernières versions de d8, à utiliser entityTypeManagerpour les versions plus récentes
wranvaud
6

Drupal 8

Utilisez la commande de la console drupal:

drupal debug:entity

ou (main courte):

drupal de

Cela produira une liste concise des entités disponibles dans votre instance.

Latinrickshaw
la source
1
L'OP dit spécifiquement "Using Drush"
Frank Robert Anderson
2
drush eval 'system ("drupal de");' 😉
diamondsea
Merci @diamondsea 😉
Latinrickshaw
3

Vous pouvez créer une commande drush nommée entities-list. Créez un module, placez-le dans un fichier nommé drush_entity.drush.incet collez ce code:

<?php
/**
 * @file
 * Drush commands related to Entities.
 */

/**
* Implements hook_drush_command().
*/
function drush_entity_drush_command() {
  $items['entities-list'] = array(
    'description' => dt("Show a list of available entities."),
    'aliases' => array('el'),
  );
  return $items;
}

/**
 * Callback for the content-type-list command.
 */
function drush_drush_entity_entities_list() {
  $entities = array_keys(entity_get_info());
  sort($entities);

  drush_print(dt("Machine name"));
  drush_print(implode("\r\n", $entities));
}

Installez le module, exécutez drush cc drushpour effacer le cache drush et utilisez la commande comme ceci:

drush el

ou

drush entities-list

Si vous souhaitez ajouter un autre alias à la commande, ajoutez des éléments au tableau d'alias comme ceci:

'aliases' => array('el', 'another'),

Et vous pouvez utiliser ces commandes:

drush el
drush entities-list
drush another

La sortie sera toujours:

Machine name:
entity 1
entity 2
entity...
entity n

ÉDITER:

Il existe une autre solution utilisant le module Drush Entity :

drush entity-type-read
Adrian Cid Almaguer
la source
1
Un autre downvoter qui ne dit pas quel est le problème avec la réponse vient d'appuyer sur le bouton downvote. Mais si vous ne dites pas quel est le problème, je ne peux pas le résoudre.
Adrian Cid Almaguer