page_cache_form_test.module in Drupal 9
Same filename and directory in other branches
Provides functionality for testing form caching.
File
core/modules/page_cache/tests/modules/page_cache_form_test.moduleView source
<?php
/**
* @file
* Provides functionality for testing form caching.
*/
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_FORM_ID_alter().
*/
function page_cache_form_test_form_page_cache_form_test_alter(&$form, FormStateInterface $form_state, $form_id) {
// This runs earlier than system_form_alter() so we fore-go the immutability
// check to the process callback, by which time system_form_alter() has run.
$form['#process'][] = 'page_cache_form_test_form_page_cache_form_test_process';
}
/**
* Process callback to check immutability.
*/
function page_cache_form_test_form_page_cache_form_test_process($form, FormStateInterface $form_state) {
if (isset($form_state
->getBuildInfo()['immutable']) && $form_state
->getBuildInfo()['immutable']) {
$form['#suffix'] = 'Immutable: TRUE';
}
else {
$form['#suffix'] = 'Immutable: FALSE';
}
return $form;
}
/**
* Implements hook_module_implements_alter().
*/
function page_cache_form_test_module_implements_alter(&$implementations, $hook) {
if ($hook === 'form_alter' && \Drupal::state()
->get('page_cache_bypass_form_immutability', FALSE)) {
// Disable system_form_alter
unset($implementations['system']);
}
}
Functions
Name | Description |
---|---|
page_cache_form_test_form_page_cache_form_test_alter | Implements hook_form_FORM_ID_alter(). |
page_cache_form_test_form_page_cache_form_test_process | Process callback to check immutability. |
page_cache_form_test_module_implements_alter | Implements hook_module_implements_alter(). |