class BigPipeRegressionTestController

Same name and namespace in other branches
  1. 9 core/modules/big_pipe/tests/modules/big_pipe_regression_test/src/BigPipeRegressionTestController.php \Drupal\big_pipe_regression_test\BigPipeRegressionTestController
  2. 8.9.x core/modules/big_pipe/tests/modules/big_pipe_regression_test/src/BigPipeRegressionTestController.php \Drupal\big_pipe_regression_test\BigPipeRegressionTestController
  3. 11.x core/modules/big_pipe/tests/modules/big_pipe_regression_test/src/BigPipeRegressionTestController.php \Drupal\big_pipe_regression_test\BigPipeRegressionTestController

Hierarchy

Expanded class hierarchy of BigPipeRegressionTestController

1 file declares its use of BigPipeRegressionTestController
BigPipeRegressionTest.php in core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipeRegressionTest.php

File

core/modules/big_pipe/tests/modules/big_pipe_regression_test/src/BigPipeRegressionTestController.php, line 9

Namespace

Drupal\big_pipe_regression_test
View source
class BigPipeRegressionTestController implements TrustedCallbackInterface {
  const MARKER_2678662 = '<script>var hitsTheFloor = "</body>";</script>';
  const PLACEHOLDER_COUNT = 3000;
  
  /**
   * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testMultipleBodies_2678662()
   */
  public function regression2678662() {
    return [
      '#markup' => BigPipeMarkup::create(self::MARKER_2678662),
    ];
  }
  
  /**
   * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testMultipleBodies_2678662()
   */
  public function regression2802923() {
    return [
      '#prefix' => BigPipeMarkup::create('<p>Hi, my train will arrive at '),
      'time' => [
        '#lazy_builder' => [
          static::class . '::currentTime',
          [],
        ],
        '#create_placeholder' => TRUE,
      ],
      '#suffix' => BigPipeMarkup::create(' — will I still be able to catch the connection to the center?</p>'),
    ];
  }
  
  /**
   * A page with large content.
   *
   * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testBigPipeLargeContent
   */
  public function largeContent() {
    return [
      'item1' => [
        '#lazy_builder' => [
          static::class . '::largeContentBuilder',
          [],
        ],
        '#create_placeholder' => TRUE,
      ],
    ];
  }
  
  /**
   * A page with multiple nodes.
   *
   * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testMultipleReplacements
   */
  public function multipleReplacements() {
    $build = [];
    foreach (range(1, self::PLACEHOLDER_COUNT) as $length) {
      $build[] = [
        '#lazy_builder' => [
          static::class . '::renderRandomSentence',
          [
            $length,
          ],
        ],
        '#create_placeholder' => TRUE,
      ];
    }
    return $build;
  }
  
  /**
   * Renders large content.
   *
   * @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testBigPipeLargeContent
   */
  public static function largeContentBuilder() {
    return [
      '#theme' => 'big_pipe_test_large_content',
      '#cache' => [
        'max-age' => 0,
      ],
    ];
  }
  
  /**
   * #lazy_builder callback; builds <time> markup with current time.
   *
   * @return array
   */
  public static function currentTime() {
    return [
      '#markup' => '<time datetime="' . date('Y-m-d', time()) . '"></time>',
      '#cache' => [
        'max-age' => 0,
      ],
    ];
  }
  
  /**
   * Renders a random length sentence.
   *
   * @param int $length
   *   The sentence length.
   *
   * @return array
   *   Render array.
   */
  public static function renderRandomSentence(int $length) : array {
    return [
      '#cache' => [
        'max-age' => 0,
      ],
      '#markup' => (new Random())->sentences($length),
    ];
  }
  
  /**
   * {@inheritdoc}
   */
  public static function trustedCallbacks() {
    return [
      'currentTime',
      'largeContentBuilder',
      'renderRandomSentence',
    ];
  }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overriden Title
BigPipeRegressionTestController::currentTime public static function #lazy_builder callback; builds &lt;time&gt; markup with current time.
BigPipeRegressionTestController::largeContent public function A page with large content.
BigPipeRegressionTestController::largeContentBuilder public static function Renders large content.
BigPipeRegressionTestController::MARKER_2678662 constant
BigPipeRegressionTestController::multipleReplacements public function A page with multiple nodes.
BigPipeRegressionTestController::PLACEHOLDER_COUNT constant
BigPipeRegressionTestController::regression2678662 public function
BigPipeRegressionTestController::regression2802923 public function
BigPipeRegressionTestController::renderRandomSentence public static function Renders a random length sentence.
BigPipeRegressionTestController::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING Deprecated constant Untrusted callbacks trigger E_USER_WARNING errors.

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