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