Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function entity_get_info

Get the entity info array of an entity type.

Parameters

$entity_type: The entity type, e.g. node, for which the info shall be returned, or NULL to return an array with info about all types.

See also

hook_entity_info()

hook_entity_info_alter()

20 calls to entity_get_info()
DrupalDefaultEntityController::cleanIds in includes/entity.inc
Ensures integer entity IDs are valid.
DrupalDefaultEntityController::__construct in includes/entity.inc
Constructor: sets basic variables.
EnableDisableTestCase::testEntityInfoChanges in modules/system/system.test
Ensures entity info cache is updated after changes.
EntityFieldQuery::propertyQuery in includes/entity.inc
Queries entity tables in SQL for property conditions and sorts.
entity_create_stub_entity in includes/common.inc
Helper function to assemble an object structure with initial ids.

... See full list

1 string reference to 'entity_get_info'
entity_info_cache_clear in includes/common.inc
Resets the cached information about entity types.

File

includes/common.inc, line 7986

Code

function entity_get_info ($entity_type = NULL) {
 global $language;
 // Use the advanced drupal_static() pattern, since this is called very often.
 static $drupal_static_fast;
 if (!isset($drupal_static_fast)) {
 $drupal_static_fast['entity_info'] =& drupal_static (__FUNCTION__);
 }
 $entity_info =& $drupal_static_fast['entity_info'];
 // hook_entity_info() includes translated strings, so each language is cached
 // separately.
 $langcode = $language->language;
 if (empty($entity_info)) {
 if ($cache = cache_get("entity_info:{$langcode}")) {
 $entity_info = $cache->data ;
 }
 else {
 $entity_info = module_invoke_all ('entity_info');
 // Merge in default values.
 foreach ($entity_info as $name => $data) {
 $entity_info[$name] += array(
 'fieldable' => FALSE,
 'controller class' => 'DrupalDefaultEntityController',
 'static cache' => TRUE,
 'field cache' => TRUE,
 'load hook' => $name . '_load',
 'bundles' => array(),
 'view modes' => array(),
 'entity keys' => array(),
 'translation' => array(),
 );
 $entity_info[$name]['entity keys'] += array(
 'revision' => '',
 'bundle' => '',
 );
 foreach ($entity_info[$name]['view modes'] as $view_mode => $view_mode_info) {
 $entity_info[$name]['view modes'][$view_mode] += array(
 'custom settings' => FALSE,
 );
 }
 // If no bundle key is provided, assume a single bundle, named after
 // the entity type.
 if (empty($entity_info[$name]['entity keys']['bundle']) && empty($entity_info[$name]['bundles'])) {
 $entity_info[$name]['bundles'] = array(
 $name => array(
 'label' => $entity_info[$name]['label'],
 ),
 );
 }
 // Prepare entity schema fields SQL info for
 // DrupalEntityControllerInterface::buildQuery().
 if (isset($entity_info[$name]['base table'])) {
 $entity_info[$name]['base table field types'] = drupal_schema_field_types ($entity_info[$name]['base table']);
 $entity_info[$name]['schema_fields_sql']['base table'] = drupal_schema_fields_sql ($entity_info[$name]['base table']);
 if (isset($entity_info[$name]['revision table'])) {
 $entity_info[$name]['schema_fields_sql']['revision table'] = drupal_schema_fields_sql ($entity_info[$name]['revision table']);
 }
 }
 }
 // Let other modules alter the entity info.
 drupal_alter ('entity_info', $entity_info);
 cache_set("entity_info:{$langcode}", $entity_info);
 }
 }
 if (empty($entity_type)) {
 return $entity_info;
 }
 elseif (isset($entity_info[$entity_type])) {
 return $entity_info[$entity_type];
 }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.