test_helpers-1.0.0-alpha6/src/Stub/RendererStub.php

src/Stub/RendererStub.php
<?php

namespace Drupal\test_helpers\Stub;

use Drupal\Component\Render\MarkupInterface;
use Drupal\Core\Render\ElementInfoManagerInterface;
use Drupal\Core\Render\PlaceholderGeneratorInterface;
use Drupal\Core\Render\RenderCacheInterface;
use Drupal\Core\Render\RenderContext;
use Drupal\Core\Render\Renderer;
use Drupal\Core\Theme\ThemeManagerInterface;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * A stub for the renderer service.
 *
 *  @package TestHelpers\DrupalServiceStubs
 */
class RendererStub extends Renderer {

  /**
   * {@inheritdoc}
   */
  public function __construct(
    // Should be `ControllerResolverInterface|CallableResolver` for Drupal 11,
    // but to keep compatibility with Drupal 10 - do not strict check it.
    $controller_resolver,
    ThemeManagerInterface $theme,
    ElementInfoManagerInterface $element_info,
    PlaceholderGeneratorInterface $placeholder_generator,
    RenderCacheInterface $render_cache,
    RequestStack $request_stack,
    array $renderer_config,
  ) {
    parent::__construct($controller_resolver, $theme, $element_info, $placeholder_generator, $render_cache, $request_stack, $renderer_config);
    $context = new RenderContext();
    $this->setCurrentRenderContext($context);
  }

  /**
   * {@inheritdoc}
   */
  protected function doRender(array &$elements, RenderContext $context): string|MarkupInterface {
    $result = parent::doRender($elements, $context);
    // If we have empty result, providing a json value of the elements.
    if ($result === '') {
      $result = json_encode($elements);
    }
    return $result;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc