Change record status: 
Project: 
Introduced in branch: 
8.7.x
Introduced in version: 
8.7.0
Description: 

Drupal\migrate\Row now had methods to facilitate accessing both source and destination properties with the same method by using an @ symbol to prefix destination properties and using @@ to escape an actual @ symbol at the beginning of a property.

This behavior matches the behavior already in use by the Drupal\migrate\Plugin\migrate\processs\Get process plugin and follows the format expected in a migration process pipeline.

The current getSourceProperty and getDestinationProperty methods are useful in source or destination plugins where you know the name of the property and whether it is a source or destination property and you don't want to worry about prefixing or escaping it.

$source_name = $row->getSourceProperty('name');

vs.

$destination_name = $row->getDestinationProperty('name');

Both of these looks similar. The difference is that one pulls data out of the source plugin. The later from the destination.

The new Row::get method is most useful in process plugins to take a source or destination property name as a configuration value and access it in the process plugin. This allows the migration author to specify either a source or a @destination property using the same format as previously expected by the get plugin.

The same from above would look like:

$source_name = $row->get('name');

vs.

$destination_name = $row->get('@name');
Impacts: 
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done