class EntityTypeInfo
Same name in other branches
- 4.x src/EntityTypeInfo.php \Drupal\devel\EntityTypeInfo
- 5.x src/EntityTypeInfo.php \Drupal\devel\EntityTypeInfo
Manipulates entity type information.
This class contains primarily bridged hooks for compile-time or cache-clear-time hooks. Runtime hooks should be placed in EntityOperations.
Hierarchy
- class \Drupal\devel\EntityTypeInfo implements \Drupal\Core\DependencyInjection\ContainerInjectionInterface uses \Drupal\Core\StringTranslation\StringTranslationTrait
Expanded class hierarchy of EntityTypeInfo
1 file declares its use of EntityTypeInfo
- devel.module in ./
devel.module - This module holds functions useful for Drupal development. Please contribute!
File
-
src/
EntityTypeInfo.php, line 17
Namespace
Drupal\develView source
class EntityTypeInfo implements ContainerInjectionInterface {
use StringTranslationTrait;
/**
* The current user.
*
* @var \Drupal\Core\Session\AccountInterface
*/
protected $currentUser;
/**
* EntityTypeInfo constructor.
*
* @param \Drupal\Core\Session\AccountInterface $current_user
* Current user.
*/
public function __construct(AccountInterface $current_user) {
$this->currentUser = $current_user;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container->get('current_user'));
}
/**
* Adds devel links to appropriate entity types.
*
* This is an alter hook bridge.
*
* @param \Drupal\Core\Entity\EntityTypeInterface[] $entity_types
* The master entity type list to alter.
*
* @see hook_entity_type_alter()
*/
public function entityTypeAlter(array &$entity_types) {
foreach ($entity_types as $entity_type_id => $entity_type) {
if (($entity_type->getFormClass('default') || $entity_type->getFormClass('edit')) && $entity_type->hasLinkTemplate('edit-form')) {
$entity_type->setLinkTemplate('devel-load', "/devel/{$entity_type_id}/{{$entity_type_id}}");
}
if ($entity_type->hasViewBuilderClass() && $entity_type->hasLinkTemplate('canonical')) {
$entity_type->setLinkTemplate('devel-render', "/devel/{$entity_type_id}/{{$entity_type_id}}/render");
}
if ($entity_type->hasLinkTemplate('devel-render') || $entity_type->hasLinkTemplate('devel-load')) {
$entity_type->setLinkTemplate('devel-definition', "/devel/{$entity_type_id}/{{$entity_type_id}}/definition");
}
}
}
/**
* Adds devel operations on entity that supports it.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity on which to define an operation.
*
* @return array
* An array of operation definitions.
*
* @see hook_entity_operation()
*/
public function entityOperation(EntityInterface $entity) {
$operations = [];
if ($this->currentUser
->hasPermission('access devel information')) {
if ($entity->hasLinkTemplate('devel-load')) {
$operations['devel'] = [
'title' => $this->t('Devel'),
'weight' => 100,
'url' => $entity->toUrl('devel-load'),
];
}
elseif ($entity->hasLinkTemplate('devel-render')) {
$operations['devel'] = [
'title' => $this->t('Devel'),
'weight' => 100,
'url' => $entity->toUrl('devel-render'),
];
}
}
return $operations;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
EntityTypeInfo::$currentUser | protected | property | The current user. |
EntityTypeInfo::create | public static | function | |
EntityTypeInfo::entityOperation | public | function | Adds devel operations on entity that supports it. |
EntityTypeInfo::entityTypeAlter | public | function | Adds devel links to appropriate entity types. |
EntityTypeInfo::__construct | public | function | EntityTypeInfo constructor. |