plus-8.x-4.x-dev/src/Plugin/PluginProviderTypeInterface.php
src/Plugin/PluginProviderTypeInterface.php
<?php
namespace Drupal\plus\Plugin;
use Drupal\Core\Cache\CacheableDependencyInterface;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
/**
* Interface PluginProviderTypeInterface.
*/
interface PluginProviderTypeInterface extends CacheableDependencyInterface, ContainerAwareInterface, ContainerInjectionInterface {
/**
* Invokes the hook to alter the definitions if the alter hook is set.
*
* @param string $hook
* The alter hook to invoke.
* @param array $definitions
* The discovered plugin definitions.
*/
public function alterDefinitions($hook, array &$definitions);
/**
* Determines if the provider of a definition exists.
*
* @param string $provider
* The machine name of the provider.
*
* @return bool
* TRUE if provider exists, FALSE otherwise.
*/
public function providerExists($provider);
/**
* Retrieves namespaces for the provider.
*
* @param string $name
* (optional) A specific extension to limit namespaces to. If not set, all
* extension namespaces will be used.
* @param string $type
* (optional) The provider type used to limit namespaces. This is only
* really useful when the provider type is actually a chain of providers.
*
* @return \Drupal\plus\Utility\ArrayObject
* An iterable list of namespace => path key/value pairs.
*/
public function getNamespaces($name = NULL, $type = NULL);
/**
* Retrieves the provider type.
*
* @return mixed
* The provider type.
*/
public function getType();
}
