From fdb67c285715809aea969e3a3c2375b79abea593 Mon Sep 17 00:00:00 2001
From: Nathaniel Catchpole <catch@35733.no-reply.drupal.org>
Date: Tue, 21 Oct 2014 10:29:31 +0100
Subject: [PATCH] Issue #2065485 by tim.plunkett, Xano: Document that
 PluginFormInterface should use #process to solve nesting issues.

---
 core/lib/Drupal/Core/Plugin/PluginFormInterface.php | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/core/lib/Drupal/Core/Plugin/PluginFormInterface.php b/core/lib/Drupal/Core/Plugin/PluginFormInterface.php
index 993c841ce377..9fb3ad5f6768 100644
--- a/core/lib/Drupal/Core/Plugin/PluginFormInterface.php
+++ b/core/lib/Drupal/Core/Plugin/PluginFormInterface.php
@@ -12,6 +12,17 @@
 /**
  * Provides an interface for a plugin that contains a form.
  *
+ * Plugin forms are usually contained 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 buildConfigurationForm() 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
+ * https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/8.
+ *
  * @ingroup plugin_api
  */
 interface PluginFormInterface {
-- 
GitLab