Mercurial > hg > isophonics-drupal-site
annotate modules/contrib/migrate_plus/src/Plugin/migrate/source/SourcePluginExtension.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 namespace Drupal\migrate_plus\Plugin\migrate\source; |
Chris@0 | 4 |
Chris@0 | 5 use Drupal\migrate\Plugin\MigrationInterface; |
Chris@0 | 6 use Drupal\migrate\Plugin\migrate\source\SourcePluginBase; |
Chris@0 | 7 |
Chris@0 | 8 /** |
Chris@0 | 9 * Generally-useful extensions to the core SourcePluginBase. |
Chris@0 | 10 */ |
Chris@0 | 11 abstract class SourcePluginExtension extends SourcePluginBase { |
Chris@0 | 12 |
Chris@0 | 13 /** |
Chris@0 | 14 * Information on the source fields to be extracted from the data. |
Chris@0 | 15 * |
Chris@0 | 16 * @var array[] |
Chris@0 | 17 * Array of field information keyed by field names. A 'label' subkey |
Chris@0 | 18 * describes the field for migration tools; a 'path' subkey provides the |
Chris@0 | 19 * source-specific path for obtaining the value. |
Chris@0 | 20 */ |
Chris@0 | 21 protected $fields = []; |
Chris@0 | 22 |
Chris@0 | 23 /** |
Chris@0 | 24 * Description of the unique ID fields for this source. |
Chris@0 | 25 * |
Chris@0 | 26 * @var array[] |
Chris@0 | 27 * Each array member is keyed by a field name, with a value that is an |
Chris@0 | 28 * array with a single member with key 'type' and value a column type such |
Chris@0 | 29 * as 'integer'. |
Chris@0 | 30 */ |
Chris@0 | 31 protected $ids = []; |
Chris@0 | 32 |
Chris@0 | 33 /** |
Chris@0 | 34 * {@inheritdoc} |
Chris@0 | 35 */ |
Chris@0 | 36 public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) { |
Chris@0 | 37 parent::__construct($configuration, $plugin_id, $plugin_definition, $migration); |
Chris@0 | 38 $this->fields = $configuration['fields']; |
Chris@0 | 39 $this->ids = $configuration['ids']; |
Chris@0 | 40 } |
Chris@0 | 41 |
Chris@0 | 42 /** |
Chris@0 | 43 * {@inheritdoc} |
Chris@0 | 44 */ |
Chris@0 | 45 public function fields() { |
Chris@0 | 46 $fields = []; |
Chris@0 | 47 foreach ($this->fields as $field_info) { |
Chris@0 | 48 $fields[$field_info['name']] = isset($field_info['label']) ? $field_info['label'] : $field_info['name']; |
Chris@0 | 49 } |
Chris@0 | 50 return $fields; |
Chris@0 | 51 } |
Chris@0 | 52 |
Chris@0 | 53 /** |
Chris@0 | 54 * {@inheritdoc} |
Chris@0 | 55 */ |
Chris@0 | 56 public function getIds() { |
Chris@0 | 57 return $this->ids; |
Chris@0 | 58 } |
Chris@0 | 59 |
Chris@0 | 60 } |