Form API – Drupal 8
Крайнюк Михаил
Drupal 8 – объектно-ориентирован.
Form API теперь тоже…
<?php
/**
* @file
* Contains DrupalExampleFormExampleForm.
*/
namespace DrupalexampleForm;
use DrupalCoreFormFormInterface;
/**
* 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 DrupalsystemSystemConfigFormBase;
class ExampleConfigForm extends SystemConfigFormBase {
/**
* Implements DrupalCoreFormFormInterface::getFormID().
*/
public function getFormID() {
return 'example_systemconfigformbase';
}
/**
* Implements DrupalCoreFormFormInterface::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()
Спасибо!
Крайнюк Михаил
kraynuk.m@i20.biz

Mikhail Kraynuk. Form api. Drupal 8

  • 1.
    Form API –Drupal 8 Крайнюк Михаил
  • 2.
    Drupal 8 –объектно-ориентирован. Form API теперь тоже…
  • 3.
    <?php /** * @file * ContainsDrupalExampleFormExampleForm. */ namespace DrupalexampleForm; use DrupalCoreFormFormInterface; /** * 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)
  • 4.
    public function buildForm(array$form, array &$form_state) { $form['my_text_field'] = array( '#type' => 'textfield', '#title' => 'Example', ); return $form; } Form Builder
  • 5.
    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
  • 6.
    use DrupalsystemSystemConfigFormBase; class ExampleConfigFormextends SystemConfigFormBase { /** * Implements DrupalCoreFormFormInterface::getFormID(). */ public function getFormID() { return 'example_systemconfigformbase'; } /** * Implements DrupalCoreFormFormInterface::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()
  • 7.