ConfigurableActionBase.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Drupal\Core\Action;
  3. use Drupal\Component\Plugin\ConfigurablePluginInterface;
  4. use Drupal\Core\Form\FormStateInterface;
  5. use Drupal\Core\Plugin\PluginFormInterface;
  6. /**
  7. * Provides a base implementation for a configurable Action plugin.
  8. */
  9. abstract class ConfigurableActionBase extends ActionBase implements ConfigurablePluginInterface, PluginFormInterface {
  10. /**
  11. * {@inheritdoc}
  12. */
  13. public function __construct(array $configuration, $plugin_id, $plugin_definition) {
  14. parent::__construct($configuration, $plugin_id, $plugin_definition);
  15. $this->setConfiguration($configuration);
  16. }
  17. /**
  18. * {@inheritdoc}
  19. */
  20. public function defaultConfiguration() {
  21. return [];
  22. }
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public function getConfiguration() {
  27. return $this->configuration;
  28. }
  29. /**
  30. * {@inheritdoc}
  31. */
  32. public function setConfiguration(array $configuration) {
  33. $this->configuration = $configuration + $this->defaultConfiguration();
  34. }
  35. /**
  36. * {@inheritdoc}
  37. */
  38. public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
  39. }
  40. /**
  41. * {@inheritdoc}
  42. */
  43. public function calculateDependencies() {
  44. return [];
  45. }
  46. }