Skip to content
Snippets Groups Projects

Added Plugin::getTypeFromManager() with tests.

Files
5
+ 17
0
@@ -2,6 +2,7 @@
namespace Drupal\helper;
use Drupal\Component\DependencyInjection\ReverseContainer;
use Drupal\Component\Plugin\CategorizingPluginManagerInterface;
use Drupal\Component\Plugin\FallbackPluginManagerInterface;
use Drupal\Component\Plugin\PluginManagerInterface;
@@ -36,6 +37,22 @@ class Plugin {
return $plugin_manager;
}
/**
* Get the plugin type from a plugin manager object.
*
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager
* The plugin manager.
*
* @return string|null
* The plugin type if found, otherwise NULL.
*/
public static function getTypeFromManager(PluginManagerInterface $manager): ?string {
$service_id = \Drupal::service(ReverseContainer::class)->getId($manager);
if ($service_id && str_starts_with($service_id, 'plugin.manager.')) {
return str_replace('plugin.manager.', '', $service_id);
}
}
/**
* Call a plugin callback and return its result.
*
Loading