public FormCache::setCache($form_build_id, $form, FormStateInterface $form_state)
Stores a form in the cache.
Parameters
string $form_build_id: The unique form build ID.
array $form: The form to cache.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides FormCacheInterface::setCache
File
- core/lib/Drupal/Core/Form/FormCache.php, line 172
Class
- FormCache
- Encapsulates the caching of a form and its form state.
Namespace
Drupal\Core\Form
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public function setCache( $form_build_id , $form , FormStateInterface $form_state ) { // 6 hours cache life time for forms should be plenty. $expire = 21600; // Ensure that the form build_id embedded in the form structure is the same // as the one passed in as a parameter. This is an additional safety measure // to prevent legacy code operating directly with // \Drupal::formBuilder()->getCache() and \Drupal::formBuilder()->setCache() // from accidentally overwriting immutable form state. if (isset( $form [ '#build_id' ]) && $form [ '#build_id' ] != $form_build_id ) { $this ->logger->error( 'Form build-id mismatch detected while attempting to store a form in the cache.' ); return ; } // Cache form structure. if (isset( $form )) { if ( $this ->currentUser->isAuthenticated()) { $form [ '#cache_token' ] = $this ->csrfToken->get(); } unset( $form [ '#build_id_old' ]); $this ->keyValueExpirableFactory->get( 'form' )->setWithExpire( $form_build_id , $form , $expire ); } if ( $data = $form_state ->getCacheableArray()) { $this ->keyValueExpirableFactory->get( 'form_state' )->setWithExpire( $form_build_id , $data , $expire ); } } |
Please login to continue.