Early Bird Registration for DrupalCon Portland 2024 is open! Register by 23:59 PST on 31 March 2024, to get $100 off your ticket.
Problem/Motivation
According to #2346261: Deprecate entity_create() in favor of a <EntityType>::create($values) or \Drupal::entityManager()->getStorage($entity_type)->create($values), entity_create() function is going to be deprecated in favor of the create() method of the entity type class if known, or the EntityManager::create() helper.
That deprecated functions is used in a lot of different contextes.
Beta phase evaluation
Issue category | Task |
---|---|
Issue priority | Major because we do not want deprecated code in Core as it could be used as example |
Prioritized changes | The main goal of this issue is DX, performance and removing code already deprecated for 8.0.0. (Direct calls to EntityType::create are better than generic calls to entity_create for performances) |
Disruption | This change is not disruptive at all as it only replaces deprecated functions call by their exact equivalent. |
Proposed resolution
Replace the deprecated call to entity_create()
by a proper call to <EntityType>::create()
or EntityManager::create()
, according to the case, everywhere its needed.
Before:
entity_create('field_config', $field_values)->save();
$type = 'node';
entity_create($type, $node_values)->save();
After:
use Drupal\field\Entity\FieldConfig;
FieldConfig::create($field_values)->save();
use Drupal\Core\Entity\EntityManager;
$type = 'node';
EntityManager::create($type, $node_values)->save();
Remaining tasks
Task | Novice task? | Contributor instructions | Complete? |
---|---|---|---|
Create a patch | Instructions | Done | |
Manually test the patch | Novice | Instructions | |
Review patch to ensure that it fixes the issue, stays within scope, is properly documented, and follows coding standards | Instructions |
User interface changes
None.
API changes
None.
Comment | File | Size | Author |
---|---|---|---|
#1 | field-replace_deprecated_entity_create_field_config-2490972-1.patch | 60.65 KB | DuaelFr |
Comments
Comment #1
DuaelFrWarning: this patch could be conflicting with #980144: Issues with "required, multiple" fields in forms if it gets commited first (because of "use" rules)
Comment #2
DuaelFrUpdate summary and title according to the change in the meta issue.
Comment #3
DuaelFrAs seen in #2490966-13: [Meta] Replace deprecated usage of entity_create with a direct call to the entity type class, demoting this issue to Normal.
Comment #4
DuaelFrAs seen in the meta issue, all the sub-issues has to be postponed and are going to be merged to split the work by entity type and not by module. Thank you for your work, we are going to do our best to preserve your attribution.
Comment #5
DuaelFrPartly merged in #2503379: Replace deprecated usage of entity_create('filter_format') with a direct call to FilterFormat::create()