class MigrateTemplateStorage in Migrate Manifest 3.x
Same name and namespace in other branches
- 8.2 src/MigrateTemplateStorage.php \Drupal\migrate_manifest\MigrateTemplateStorage
- 8 src/MigrateTemplateStorage.php \Drupal\migrate_manifest\MigrateTemplateStorage
Storage to access migration template configuration in enabled extensions.
Direct copy of the template storage removed from core.
Hierarchy
- class \Drupal\migrate_manifest\MigrateTemplateStorage implements MigrateTemplateStorageInterface
Expanded class hierarchy of MigrateTemplateStorage
See also
https://www.drupal.org/node/2676258
1 string reference to 'MigrateTemplateStorage'
1 service uses MigrateTemplateStorage
File
- src/
MigrateTemplateStorage.php, line 14
Namespace
Drupal\migrate_manifestView source
class MigrateTemplateStorage implements MigrateTemplateStorageInterface {
/**
* Extension sub-directory containing default configuration for migrations.
*/
const MIGRATION_TEMPLATE_DIRECTORY = 'migrations';
/**
* Template subdirectory.
*
* @var string
*/
protected $directory;
/**
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* {@inheritdoc}
*/
public function __construct(ModuleHandlerInterface $module_handler, $directory = self::MIGRATION_TEMPLATE_DIRECTORY) {
$this->moduleHandler = $module_handler;
$this->directory = $directory;
}
/**
* {@inheritdoc}
*/
public function findTemplatesByTag($tag) {
$templates = $this
->getAllTemplates();
$matched_templates = [];
foreach ($templates as $template_name => $template) {
if (!empty($template['migration_tags'])) {
if (in_array($tag, $template['migration_tags'])) {
$matched_templates[$template_name] = $template;
}
}
}
return $matched_templates;
}
/**
* {@inheritdoc}
*/
public function getTemplateByName($name) {
$templates = $this
->getAllTemplates();
return isset($templates[$name]) ? $templates[$name] : NULL;
}
/**
* {@inheritdoc}
*/
public function getAllTemplates() {
$templates = [];
foreach ($this->moduleHandler
->getModuleDirectories() as $directory) {
$full_directory = $directory . '/' . $this->directory;
if (file_exists($full_directory)) {
$files = scandir($full_directory);
foreach ($files as $file) {
if ($file[0] !== '.' && preg_match('/\\.yml$/', $file)) {
$templates[basename($file, '.yml')] = Yaml::decode(file_get_contents("{$full_directory}/{$file}"));
}
}
}
}
return $templates;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MigrateTemplateStorage:: |
protected | property | Template subdirectory. | |
MigrateTemplateStorage:: |
protected | property | ||
MigrateTemplateStorage:: |
public | function |
Find all migration templates with the specified tag. Overrides MigrateTemplateStorageInterface:: |
|
MigrateTemplateStorage:: |
public | function |
Retrieves all migration templates belonging to enabled extensions. Overrides MigrateTemplateStorageInterface:: |
|
MigrateTemplateStorage:: |
public | function |
Retrieve a template given a specific name. Overrides MigrateTemplateStorageInterface:: |
|
MigrateTemplateStorage:: |
constant | Extension sub-directory containing default configuration for migrations. | ||
MigrateTemplateStorage:: |
public | function |