This module provides an Entity extension model. You need to write your extension function
I think that many functions should belong to entity instead of a single function to deal with
Features
Extend the original function of Entity
HOW TO USE
---------------------
- create your expand file: src/EntityExpand/UserExpand.php
<?php namespace Drupal\my_module\EntityExpand; use Drupal\entity_expand\EntityExpandBase; class UserExpand extends EntityExpandBase { public function a() {} public function b() {} public function c() {} public function newname() { return $this->entity->name->value . 'newname'; } } - define a hook import this class hook_entity_expand_load.
-
use this expand.
//$user = entity_expand_load(\Drupal\user\Entity\User::load(1)); $user = _entity_load('user', 1); $user->name->value // original method. $user->a(); // get expand entity method. $user->b(); $user->c(); $user->newname(); $user->field_ref_user->ref()->a(); // get embed entity method. $user->field_ref_user->ref()->b(); $user->field_ref_user->ref()->c(); // default expand method. // set multiple values $user->setValues([ 'name' => 'new name', 'field_a' => 'a value', 'field_b' => 'b value', ]); $user->field_tags->refs(function($entity) { print_r($entity->label()); }); $user->field_category->listTextLabel(); // display field value label. render($user->view('full')); // entity view. $user->field_a->val('no value'); // get field value and set default value. $user->field_ref_value->targets(); // get multiple target_ids.
function mymodule_entity_expand_load($entity, $entity_type_id) {
if ($entity_type_id == 'user') {
$entity = new \Drupal\my_module\EntityExpand\UserExpand($entity);
}
// more....
if ($entity_type_id == 'taxonomy_term') {
$entity = new \Drupal\my_module\EntityExpand\TaxonomyTermExpand($entity);
}
return $entity;
}
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
More in the Entity ecosystem
Most installed first