function MigrationPluginManager::getDiscovery
Gets the plugin discovery.
This method overrides DefaultPluginManager::getDiscovery() in order to search for migration configurations in the MODULENAME/migrations directory.
Overrides DefaultPluginManager::getDiscovery
File
- 
              core/
modules/ migrate/ src/ Plugin/ MigrationPluginManager.php, line 69  
Class
- MigrationPluginManager
 - Plugin manager for migration plugins.
 
Namespace
Drupal\migrate\PluginCode
protected function getDiscovery() {
  if (!isset($this->discovery)) {
    $directories = array_map(function ($directory) {
      return [
        $directory . '/migrations',
      ];
    }, $this->moduleHandler
      ->getModuleDirectories());
    $yaml_discovery = new YamlDirectoryDiscovery($directories, 'migrate');
    // This gets rid of migrations which try to use a non-existent source
    // plugin. The common case for this is if the source plugin has, or
    // specifies, a non-existent provider.
    $only_with_source_discovery = new NoSourcePluginDecorator($yaml_discovery);
    // This gets rid of migrations with explicit providers set if one of the
    // providers do not exist before we try to use a potentially non-existing
    // deriver. This is a rare case.
    $filtered_discovery = new ProviderFilterDecorator($only_with_source_discovery, [
      $this->moduleHandler,
      'moduleExists',
    ]);
    $this->discovery = new ContainerDerivativeDiscoveryDecorator($filtered_discovery);
  }
  return $this->discovery;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.