Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Component/Plugin/PluginManagerInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Component/Plugin/PluginManagerInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,29 @@ +<?php + +namespace Drupal\Component\Plugin; + +use Drupal\Component\Plugin\Discovery\DiscoveryInterface; +use Drupal\Component\Plugin\Factory\FactoryInterface; +use Drupal\Component\Plugin\Mapper\MapperInterface; + +/** + * Interface implemented by plugin managers. + * + * There are no explicit methods on the manager interface. Instead plugin + * managers broker the interactions of the different plugin components, and + * therefore, must implement each component interface, which is enforced by + * this interface extending all of the component ones. + * + * While a plugin manager may directly implement these interface methods with + * custom logic, it is expected to be more common for plugin managers to proxy + * the method invocations to the respective components, and directly implement + * only the additional functionality needed by the specific pluggable system. + * To follow this pattern, plugin managers can extend from the PluginManagerBase + * class, which contains the proxying logic. + * + * @see \Drupal\Component\Plugin\PluginManagerBase + * + * @ingroup plugin_api + */ +interface PluginManagerInterface extends DiscoveryInterface, FactoryInterface, MapperInterface { +}