UncacheableFieldHandlerTrait.php

Same filename in other branches
  1. 9 core/modules/views/src/Plugin/views/field/UncacheableFieldHandlerTrait.php
  2. 8.9.x core/modules/views/src/Plugin/views/field/UncacheableFieldHandlerTrait.php
  3. 11.x core/modules/views/src/Plugin/views/field/UncacheableFieldHandlerTrait.php

Namespace

Drupal\views\Plugin\views\field

File

core/modules/views/src/Plugin/views/field/UncacheableFieldHandlerTrait.php

View source
<?php

namespace Drupal\views\Plugin\views\field;

use Drupal\views\ResultRow;

/**
 * Trait encapsulating the logic for uncacheable field handlers.
 */
trait UncacheableFieldHandlerTrait {
    
    /**
     * {@inheritdoc}
     *
     * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::render()
     */
    public function render(ResultRow $row) {
        return $this->getFieldTokenPlaceholder();
    }
    
    /**
     * {@inheritdoc}
     *
     * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::postRender()
     */
    public function postRender(ResultRow $row, $output) {
        $placeholder = $this->getFieldTokenPlaceholder();
        $value = $this->doRender($row);
        $this->last_render = str_replace($placeholder, $value, $output);
        return [
            $placeholder => $value,
        ];
    }
    
    /**
     * {@inheritdoc}
     *
     * @see \Drupal\views\Plugin\views\Field\FieldPluginBase::getFieldTokenPlaceholder()
     */
    protected abstract function getFieldTokenPlaceholder();
    
    /**
     * Actually renders the field markup.
     *
     * @param \Drupal\views\ResultRow $row
     *   A result row.
     *
     * @return string
     *   The field markup.
     */
    protected function doRender(ResultRow $row) {
        return $this->getValue($row);
    }
    
    /**
     * {@inheritdoc}
     *
     * @see \Drupal\views\Plugin\views\Field\FieldHandlerInterface::getValue()
     */
    protected abstract function getValue(ResultRow $row, $field = NULL);

}

Traits

Title Deprecated Summary
UncacheableFieldHandlerTrait Trait encapsulating the logic for uncacheable field handlers.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.