<?php /** * @file * Contains \Drupal\Component\Plugin\DependentPluginInterface. */ namespace Drupal\Component\Plugin; /** * Provides an interface for a plugin that has dependencies. * * @ingroup plugin_api */ interface DependentPluginInterface { /** * Calculates dependencies for the configured plugin. * * Dependencies are saved in the plugin's configuration entity and are used to * determine configuration synchronization order. For example, if the plugin * integrates with specific user roles, this method should return an array of * dependencies listing the specified roles. * * @return array * An array of dependencies grouped by type (config, content, module, * theme). For example: * @code * array( * 'config' => array('user.role.anonymous', 'user.role.authenticated'), * 'content' => array('node:article:f0a189e6-55fb-47fb-8005-5bef81c44d6d'), * 'module' => array('node', 'user'), * 'theme' => array('seven'), * ); * @endcode * * @see \Drupal\Core\Config\Entity\ConfigDependencyManager * @see \Drupal\Core\Entity\EntityInterface::getConfigDependencyName() */ public function calculateDependencies(); }