protected function AnnotatedClassDiscoveryAutomatedProviders::prepareAnnotationDefinition in Drupal 9
Same name and namespace in other branches
- 8 core/modules/migrate/src/Plugin/Discovery/AnnotatedClassDiscoveryAutomatedProviders.php \Drupal\migrate\Plugin\Discovery\AnnotatedClassDiscoveryAutomatedProviders::prepareAnnotationDefinition()
- 10 core/modules/migrate/src/Plugin/Discovery/AnnotatedClassDiscoveryAutomatedProviders.php \Drupal\migrate\Plugin\Discovery\AnnotatedClassDiscoveryAutomatedProviders::prepareAnnotationDefinition()
Prepares the annotation definition.
Parameters
\Drupal\Component\Annotation\AnnotationInterface $annotation: The annotation derived from the plugin.
string $class: The class used for the plugin.
Overrides AnnotatedClassDiscovery::prepareAnnotationDefinition
1 call to AnnotatedClassDiscoveryAutomatedProviders::prepareAnnotationDefinition()
- AnnotatedClassDiscoveryAutomatedProviders::getDefinitions in core/
modules/ migrate/ src/ Plugin/ Discovery/ AnnotatedClassDiscoveryAutomatedProviders.php - Gets the definition of all plugins for this type.
File
- core/
modules/ migrate/ src/ Plugin/ Discovery/ AnnotatedClassDiscoveryAutomatedProviders.php, line 54
Class
- AnnotatedClassDiscoveryAutomatedProviders
- Determines providers based on a class's and its parent's namespaces.
Namespace
Drupal\migrate\Plugin\DiscoveryCode
protected function prepareAnnotationDefinition(AnnotationInterface $annotation, $class, BaseStaticReflectionParser $parser = NULL) {
if (!$annotation instanceof MultipleProviderAnnotationInterface) {
throw new \LogicException('AnnotatedClassDiscoveryAutomatedProviders annotations must implement \\Drupal\\migrate\\Annotation\\MultipleProviderAnnotationInterface');
}
$annotation
->setClass($class);
$providers = $annotation
->getProviders();
// Loop through all the parent classes and add their providers (which we
// infer by parsing their namespaces) to the $providers array.
do {
$providers[] = $this
->getProviderFromNamespace($parser
->getNamespaceName());
} while ($parser = StaticReflectionParser::getParentParser($parser, $this->finder));
$providers = array_unique(array_filter($providers, function ($provider) {
return $provider && $provider !== 'component';
}));
$annotation
->setProviders($providers);
}