function FormBuilderWrapper::prepareForm

File

webprofiler/src/Form/FormBuilderWrapper.php, line 28

Class

FormBuilderWrapper
Class FormBuilderWrapper

Namespace

Drupal\webprofiler\Form

Code

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;
}