buildForms; } /** * {@inheritdoc} */ public function prepareForm($form_id, &$form, FormStateInterface &$form_state) { parent::prepareForm($form_id, $form, $form_state); if (!$this->buildForms) { $this->buildForms = []; } $elements = []; foreach ($form as $key => $value) { if (strpos($key, '#') !== 0) { $elements[$key]['#title'] = isset($value['#title']) ? $value['#title'] : NULL; $elements[$key]['#access'] = isset($value['#access']) ? $value['#access'] : NULL; $elements[$key]['#type'] = isset($value['#type']) ? $value['#type'] : NULL; } } $buildInfo = $form_state->getBuildInfo(); $class = get_class($buildInfo['callback_object']); $method = new \ReflectionMethod($class, 'buildForm'); $this->buildForms[$buildInfo['form_id']] = [ 'class' => [ 'class' => $class, 'method' => 'buildForm', 'file' => $method->getFilename(), 'line' => $method->getStartLine(), ], 'form' => $elements, ]; return $form; } }