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

---------------------

  1. 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';
      }
    }
    
    
  2. define a hook import this class hook_entity_expand_load.
  3. 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;
    }
    
  4. 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.
    
Supporting organizations: 

Project information

Releases