Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
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 |
User interface changes
None.
API changes
None.
Comment | File | Size | Author |
---|---|---|---|
#2 | replace_deprecated-2491027-2.patch | 6.99 KB | jmolivas |
Comments
Comment #1
DuaelFrUpdate summary and title according to the change in the meta issue.
Comment #2
jmolivas CreditAttribution: jmolivas at Blink Reaction (now part of FFW) commentedComment #3
jmolivas CreditAttribution: jmolivas at Blink Reaction (now part of FFW) commentedComment #4
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 #5
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 #6
DuaelFrPartly merged in #2503379: Replace deprecated usage of entity_create('filter_format') with a direct call to FilterFormat::create()