Як перелічити всі доступні типи об'єктів?


Відповіді:


29

Drupal 7

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

Друпал 8

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

за пропозицією Джейсона ,

або:

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

відповідно до пропозиції @RaisinBranCrunch . Примітка \Drupal::entityManager()застаріла в 8.х.


1
Для Drupal 8, напишіть eval "print_r (array_keys (\ Drupal :: entitTypeManager () -> 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 є depricated
Суреш Кумара

1
entityManagerзастаріла в останніх версіях d8, використовуйте entityTypeManagerдля новіших версій
wranvaud

6

Друпал 8

Використовуйте команду консолі drupal:

drupal debug:entity

або (коротка рука):

drupal de

Це створить стислий перелік об'єктів, доступних у вашому екземплярі.


2
ОП говорить спеціально "Використання Друша"
Френк Роберт Андерсон

2
drush eval 'system ("drupal de"); " 😉
diamondsea

Спасибо @diamondsea 😉
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
Ще один прихильник, який не говорить про те, у чому проблема з відповіддю, просто натисніть кнопку знищення. Але якщо ти не кажеш, у чому проблема, я не можу її виправити.
Адріан Сид Альмагюр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.