interface PluginFormInterface
Provides an interface for an embeddable plugin form.
Plugins can implement this form directly, or a standalone class can be used. Decoupled forms can implement \Drupal\Component\Plugin\PluginAwareInterface in order to gain access to the plugin.
Hierarchy
- interface \Drupal\Core\Plugin\PluginFormInterface
 
Expanded class hierarchy of PluginFormInterface
All classes that implement PluginFormInterface
Related topics
29 files declare their use of PluginFormInterface
- ActionFormBase.php in core/
modules/ action/ src/ Form/ ActionFormBase.php  - AggregatorPluginSettingsBase.php in core/
modules/ aggregator/ src/ Plugin/ AggregatorPluginSettingsBase.php  - BlockPluginInterface.php in core/
lib/ Drupal/ Core/ Block/ BlockPluginInterface.php  - ChooseSectionController.php in core/
modules/ layout_builder/ src/ Controller/ ChooseSectionController.php  - CKEditor5PluginConfigurableInterface.php in core/
modules/ ckeditor5/ src/ Plugin/ CKEditor5PluginConfigurableInterface.php  
File
- 
              core/
lib/ Drupal/ Core/ Plugin/ PluginFormInterface.php, line 16  
Namespace
Drupal\Core\PluginView source
interface PluginFormInterface {
  
  /**
   * Form constructor.
   *
   * Plugin forms are embedded in other forms. In order to know where the plugin
   * form is located in the parent form, #parents and #array_parents must be
   * known, but these are not available during the initial build phase. In order
   * to have these properties available when building the plugin form's
   * elements, let this method return a form element that has a #process
   * callback and build the rest of the form in the callback. By the time the
   * callback is executed, the element's #parents and #array_parents properties
   * will have been set by the form API. For more documentation on #parents and
   * #array_parents, see \Drupal\Core\Render\Element\FormElement.
   *
   * @param array $form
   *   An associative array containing the initial structure of the plugin form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form. Calling code should pass on a subform
   *   state created through
   *   \Drupal\Core\Form\SubformState::createForSubform().
   *
   * @return array
   *   The form structure.
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state);
  
  /**
   * Form validation handler.
   *
   * @param array $form
   *   An associative array containing the structure of the plugin form as built
   *   by static::buildConfigurationForm().
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form. Calling code should pass on a subform
   *   state created through
   *   \Drupal\Core\Form\SubformState::createForSubform().
   */
  public function validateConfigurationForm(array &$form, FormStateInterface $form_state);
  
  /**
   * Form submission handler.
   *
   * @param array $form
   *   An associative array containing the structure of the plugin form as built
   *   by static::buildConfigurationForm().
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form. Calling code should pass on a subform
   *   state created through
   *   \Drupal\Core\Form\SubformState::createForSubform().
   */
  public function submitConfigurationForm(array &$form, FormStateInterface $form_state);
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Overrides | 
|---|---|---|---|---|
| PluginFormInterface::buildConfigurationForm | public | function | Form constructor. | 47 | 
| PluginFormInterface::submitConfigurationForm | public | function | Form submission handler. | 42 | 
| PluginFormInterface::validateConfigurationForm | public | function | Form validation handler. | 28 | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.