FormBuilderWrapper.php
Namespace
Drupal\webprofiler\FormFile
-
webprofiler/
src/ Form/ FormBuilderWrapper.php
View source
<?php
namespace Drupal\webprofiler\Form;
use Drupal\Core\Form\FormBuilder;
use Drupal\Core\Form\FormStateInterface;
/**
* Class FormBuilderWrapper
*/
class FormBuilderWrapper extends FormBuilder {
/**
* @var array
*/
private $buildForms;
/**
* @return array
*/
public function getBuildForm() {
return $this->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;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
FormBuilderWrapper | Class FormBuilderWrapper |