Variable.php in Zircon Profile 8
File
core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php
View source
<?php
namespace Drupal\migrate_drupal\Plugin\migrate\source;
use Drupal\Core\Entity\EntityManagerInterface;
use Drupal\Core\State\StateInterface;
use Drupal\migrate\Entity\MigrationInterface;
class Variable extends DrupalSqlBase {
protected $variables;
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, StateInterface $state, EntityManagerInterface $entity_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration, $state, $entity_manager);
$this->variables = $this->configuration['variables'];
}
protected function initializeIterator() {
return new \ArrayIterator(array(
$this
->values(),
));
}
protected function values() {
$values['id'] = reset($this->variables);
return $values + array_map('unserialize', $this
->prepareQuery()
->execute()
->fetchAllKeyed());
}
public function count() {
return intval($this
->query()
->countQuery()
->execute()
->fetchField() > 0);
}
public function fields() {
return array_combine($this->variables, $this->variables);
}
public function query() {
return $this
->getDatabase()
->select('variable', 'v')
->fields('v', array(
'name',
'value',
))
->condition('name', $this->variables, 'IN');
}
public function getIds() {
$ids['id']['type'] = 'string';
return $ids;
}
}
Classes
Name |
Description |
Variable |
Drupal variable source from database. |