entity_get_info
- Versions
- 7
entity_get_info($entity_type = NULL)
Get the entity info array of an entity type.
See also
@see hook_entity_info_alter()
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.
Code
includes/common.inc, line 6237
<?php
function entity_get_info($entity_type = NULL) {
// Use the advanced drupal_static() pattern, since this is called very often.
static $drupal_static = array();
isset($drupal_static[__FUNCTION__]) || ($drupal_static[__FUNCTION__] = &drupal_static(__FUNCTION__));
$entity_info = &$drupal_static[__FUNCTION__];
if (empty($entity_info)) {
if ($cache = cache_get('entity_info')) {
$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,
'load hook' => $name . '_load',
'bundles' => array(),
'object keys' => array(),
'cacheable' => TRUE,
'translation' => array(),
);
$entity_info[$name]['object keys'] += array(
'revision' => '',
'bundle' => '',
);
// If no bundle key is provided, assume a single bundle, named after
// the entity type.
if (empty($entity_info[$name]['object keys']['bundle']) && empty($entity_info[$name]['bundles'])) {
$entity_info[$name]['bundles'] = array($name => array('label' => $entity_info[$name]['label']));
}
}
// Let other modules alter the entity info.
drupal_alter('entity_info', $entity_info);
cache_set('entity_info', $entity_info);
}
}
return empty($entity_type) ? $entity_info : $entity_info[$entity_type];
}
?>Login or register to post comments 