Как составить список всех доступных типов объектов?

Ответы:

29

Drupal 7

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

Drupal 8

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

согласно предложению Джейсона ,

или:

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

согласно предложению @RaisinBranCrunch . Примечание \Drupal::entityManager()является устаревшим в 8.x.

kenorb
источник
1
Для Drupal 8: drush eval "print_r (array_keys (\ Drupal :: entityTypeManager () -> getDefinitions ()));"
Джейсон
2
Для меня это должно бытьdrush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()))";
RaisinBranCrunch
используйте Cpas E вместо e в EntityManager. drush eval "print_r (array_keys (\ Drupal :: EntityManager () -> getDefinitions‌ ()))"; EntityManager депортирован
Суреш Кумара
1
entityManagerустарела в последних версиях d8, используйте entityTypeManagerдля более новых версий
wranvaud
6

Drupal 8

Используйте консольную команду drupal:

drupal debug:entity

или (короткая рука):

drupal de

Это даст краткий список сущностей, доступных в вашем экземпляре.

Latinrickshaw
источник
1
ОП говорит конкретно: «Использование Drush»
Фрэнк Роберт Андерсон
2
drush eval 'system ("drupal de");' Diamond
алмазное
Благодаря @diamondsea Latin
Latinrickshaw
3

Вы можете создать команду drush с именем entities-list. Создайте модуль, поместите в файл с именем drush_entity.drush.incи вставьте этот код:

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

Установите модуль, запустите, drush cc drushчтобы очистить кэш-память, и используйте следующую команду:

drush el

или

drush entities-list

Если вы хотите добавить другой псевдоним в команду, добавьте элементы в массив псевдонимов следующим образом:

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

И вы можете использовать эту команду:

drush el
drush entities-list
drush another

Всегда вывод будет:

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

РЕДАКТИРОВАТЬ:

Существует другое решение, использующее модуль Drush Entity :

drush entity-type-read
Адриан Сид Альмагуер
источник
1
Другой downvoter, который не говорит, в чем проблема с ответом, просто нажал кнопку downvote. Но если ты не скажешь, в чем проблема, я не смогу это исправить.
Адриан Сид