mikhail kraynuk. form api. drupal 8
TRANSCRIPT
Form API – Drupal 8Крайнюк Михаил
Drupal 8 – объектно-ориентирован.
Form API теперь тоже…
<?php/*** @file* Contains \Drupal\Example\Form\ExampleForm.*/
namespace Drupal\example\Form; use Drupal\Core\Form\FormInterface;
/*** Provides a simple example form.*/class ExampleForm implements FormInterface {
}
public function getFormID()
public function buildForm(array $form, array &$form_state)
public function validateForm(array &$form, array &$form_state)
public function submitForm(array &$form, array &$form_state)
public function buildForm(array $form, array &$form_state) {
$form['my_text_field'] = array('#type' => 'textfield','#title' => 'Example',
);
return $form; }
Form Builder
public function validateForm(array $form, FormStateInterface &$form_state) {
if (strlen($form_state->getValue('phone_number')) < 3) {
$form_state->setErrorByName('phone_number', $this->t('The phone number is too short.'));
}
}
Form Validate
use Drupal\system\SystemConfigFormBase; class ExampleConfigForm extends SystemConfigFormBase {
/*** Implements \Drupal\Core\Form\FormInterface::getFormID().*/public function getFormID() { return 'example_systemconfigformbase';
}
/*** Implements \Drupal\Core\Form\FormInterface::buildForm().*/public function buildForm(array $form, array &$form_state) { $form = parent::buildForm($form, $form_state); // Use the Form API to define form elements.return $form;
} …
system_settings_form()