Issue #3318888 by mondrake, Spokje, smustgrave, xjm, longwave: Fix migrate destination entity PHPStan L0 issues

merge-requests/4281/head
Dave Long 2023-06-27 14:48:10 +01:00
parent 3324f140bb
commit 62d7c46774
No known key found for this signature in database
GPG Key ID: ED52AE211E142771
6 changed files with 47 additions and 29 deletions

View File

@ -6,6 +6,7 @@ use Drupal\Component\Plugin\DependentPluginInterface;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\DependencyTrait;
use Drupal\Core\Entity\EntityFieldManagerInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\migrate\EntityFieldDefinitionTrait;
@ -181,6 +182,35 @@ abstract class Entity extends DestinationBase implements ContainerFactoryPluginI
return $entity;
}
/**
* Updates an entity with the new values from row.
*
* This method should be implemented in extending classes.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity to update.
* @param \Drupal\migrate\Row $row
* The row object to update from.
*
* @return \Drupal\Core\Entity\EntityInterface
* An updated entity from row values.
*
* @throws \LogicException
* Thrown for config entities, if the destination is for translations and
* either the "property" or "translation" property does not exist.
*/
abstract protected function updateEntity(EntityInterface $entity, Row $row);
/**
* Populates as much of the stub row as possible.
*
* This method can be implemented in extending classes when needed.
*
* @param \Drupal\migrate\Row $row
* The row of data.
*/
protected function processStubRow(Row $row) {}
/**
* Gets the entity ID of the row.
*

View File

@ -193,6 +193,9 @@ class EntityConfigBase extends Entity {
* @param \Drupal\migrate\Row $row
* The row object to update from.
*
* @return \Drupal\Core\Entity\EntityInterface
* An updated entity from row values.
*
* @throws \LogicException
* Thrown if the destination is for translations and either the "property"
* or "translation" property does not exist.
@ -226,6 +229,8 @@ class EntityConfigBase extends Entity {
}
$this->setRollbackAction($row->getIdMap());
}
return $entity;
}
/**

View File

@ -266,15 +266,7 @@ class EntityContentBase extends Entity implements HighestIdInterface, MigrateVal
}
/**
* Updates an entity with the new values from row.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity to update.
* @param \Drupal\migrate\Row $row
* The row object to update from.
*
* @return \Drupal\Core\Entity\EntityInterface
* An updated entity from row values.
* {@inheritdoc}
*/
protected function updateEntity(EntityInterface $entity, Row $row) {
$empty_destinations = $row->getEmptyDestinationProperties();
@ -325,10 +317,7 @@ class EntityContentBase extends Entity implements HighestIdInterface, MigrateVal
}
/**
* Populates as much of the stub row as possible.
*
* @param \Drupal\migrate\Row $row
* The row of data.
* {@inheritdoc}
*/
protected function processStubRow(Row $row) {
$bundle_key = $this->getKey('bundle');

View File

@ -242,6 +242,14 @@ class EntityRevision extends RealEntityRevision {
* This method is from the parent and we aren't concerned with the inner
* workings of its implementation which would trickle into mock assertions. An
* empty implementation avoids this.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity to update.
* @param \Drupal\migrate\Row $row
* The row object to update from.
*
* @return \Drupal\Core\Entity\EntityInterface
* An updated entity from row values.
*/
protected function updateEntity(EntityInterface $entity, Row $row) {
return $entity;

View File

@ -90,12 +90,7 @@ class EntitySearchPage extends EntityConfigBase {
}
/**
* Updates the entity with the contents of a row.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The search page entity.
* @param \Drupal\migrate\Row $row
* The row object to update from.
* {@inheritdoc}
*/
protected function updateEntity(EntityInterface $entity, Row $row) {
parent::updateEntity($entity, $row);
@ -105,6 +100,7 @@ class EntitySearchPage extends EntityConfigBase {
if ($plugin instanceof ConfigurableSearchPluginBase) {
$plugin->setConfiguration($row->getDestinationProperty('configuration'));
}
return $entity;
}
}

View File

@ -1500,16 +1500,6 @@ parameters:
count: 1
path: modules/migrate/src/Plugin/migrate/destination/Config.php
-
message: "#^Call to an undefined method Drupal\\\\migrate\\\\Plugin\\\\migrate\\\\destination\\\\Entity\\:\\:processStubRow\\(\\)\\.$#"
count: 1
path: modules/migrate/src/Plugin/migrate/destination/Entity.php
-
message: "#^Call to an undefined method Drupal\\\\migrate\\\\Plugin\\\\migrate\\\\destination\\\\Entity\\:\\:updateEntity\\(\\)\\.$#"
count: 1
path: modules/migrate/src/Plugin/migrate/destination/Entity.php
-
message: "#^Method Drupal\\\\migrate\\\\Plugin\\\\migrate\\\\destination\\\\Entity\\:\\:fields\\(\\) should return array but return statement is missing\\.$#"
count: 1