Como listar todos os tipos de entidades disponíveis?

Respostas:

29

Drupal 7

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

Drupal 8

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

conforme sugestão de Jason ,

ou:

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

conforme sugestão do @RaisinBranCrunch . A nota \Drupal::entityManager()está sendo descontinuada no 8.x.

kenorb
fonte
11
No Drupal 8, evite eval "print_r (array_keys (\ Drupal :: entityTypeManager () -> getDefinitions ()));"
Jason
2
Para mim, tem que serdrush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()))";
RaisinBranCrunch
use Cpas E em vez de e no EntityManager. drush eval "print_r (array_keys (\ Drupal :: EntityManager () -> getDefinitions‌ ()))"; entityManager é privado
Suresh Kumara
11
entityManageré obsoleto em versões mais recentes do D8, o uso entityTypeManagerde versões mais recentes
wranvaud
6

Drupal 8

Use o comando drupal console:

drupal debug:entity

ou (mão curta):

drupal de

Isso produzirá uma lista concisa de entidades disponíveis em sua instância.

Latinrickshaw
fonte
11
O OP diz especificamente "Using Drush"
Frank Robert Anderson
2
drush eval 'system ("drupal de"); 😉
diamondsea
Graças @diamondsea 😉
Latinrickshaw
3

Você pode criar um comando drush chamado entities-list. Crie um módulo, coloque dentro de um arquivo chamado drush_entity.drush.ince cole este código:

<?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));
}

Instale o módulo, execute drush cc drushpara limpar o cache de drush e use o comando como este:

drush el

ou

drush entities-list

Se você deseja adicionar outro alias ao comando, adicione elementos à matriz de aliases como esta:

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

E você pode usar estes comandos:

drush el
drush entities-list
drush another

Sempre a saída será:

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

EDITAR:

Há outra solução usando o módulo Drush Entity :

drush entity-type-read
Adrian Cid Almaguer
fonte
11
Outro votante negativo que não diz qual é o problema com a resposta apenas pressiona o botão de voto negativo. Mas se você não diz qual é o problema, não posso consertá-lo.
Adrian Cid Almaguer