arch-8.x-1.x-dev/modules/cart/src/Controller/CartController.php

modules/cart/src/Controller/CartController.php
<?php

namespace Drupal\arch_cart\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Form\FormBuilderInterface;
use Drupal\Core\PageCache\ResponsePolicy\KillSwitch;
use Symfony\Component\DependencyInjection\ContainerInterface;

/**
 * Cart page controller.
 */
class CartController extends ControllerBase {

  /**
   * The page cache kill switch service.
   *
   * @var \Drupal\Core\PageCache\ResponsePolicy\KillSwitch
   */
  protected $pageCacheKillSwitch;

  /**
   * Constructs a CartController object.
   *
   * @param \Drupal\Core\Form\FormBuilderInterface $formBuilder
   *   Form builder service.
   * @param \Drupal\Core\PageCache\ResponsePolicy\KillSwitch $killSwitch
   *   Page cache kill switch service.
   */
  public function __construct(
    FormBuilderInterface $formBuilder,
    KillSwitch $killSwitch,
  ) {
    $this->formBuilder = $formBuilder;
    $this->pageCacheKillSwitch = $killSwitch;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('form_builder'),
      $container->get('page_cache_kill_switch')
    );
  }

  /**
   * Page callback.
   *
   * @return array
   *   Render array.
   */
  public function content() {
    $this->pageCacheKillSwitch->trigger();

    return [
      '#type' => 'container',
      '#attributes' => [],
      '#cache' => [
        'max-age' => 0,
        'contexts' => [
          'user',
          'session',
        ],
      ],
      'form' => $this->formBuilder()->getForm('Drupal\arch_cart\Form\CartForm'),
    ];
  }

}

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

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