class BigPipeRegressionTestController

Same name 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. 10 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 11

Namespace

Drupal\big_pipe_regression_test
View source
class BigPipeRegressionTestController implements TrustedCallbackInterface {
    const MARKER_2678662 = '<script>var hitsTheFloor = "</body>";</script>';
    const PLACEHOLDER_COUNT = 2000;
    
    /**
     * @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 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.

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