X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdevel%2Fwebprofiler%2Fsrc%2FForm%2FFormBuilderWrapper.php;fp=web%2Fmodules%2Fcontrib%2Fdevel%2Fwebprofiler%2Fsrc%2FForm%2FFormBuilderWrapper.php;h=48064b8011e26563bcc2a576cb05201bf627974e;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/devel/webprofiler/src/Form/FormBuilderWrapper.php b/web/modules/contrib/devel/webprofiler/src/Form/FormBuilderWrapper.php new file mode 100644 index 000000000..48064b801 --- /dev/null +++ b/web/modules/contrib/devel/webprofiler/src/Form/FormBuilderWrapper.php @@ -0,0 +1,61 @@ +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; + } +}