monitoring-8.x-1.x-dev/src/Controller/TemporaryFilesController.php

src/Controller/TemporaryFilesController.php
<?php

namespace Drupal\monitoring\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\file\FileInterface;
use Drupal\monitoring\SensorConfigInterface;
use Drupal\monitoring\SensorRunner;
use Symfony\Component\DependencyInjection\ContainerInterface;

class TemporaryFilesController extends ControllerBase {

  /**
   * The sensor runner.
   *
   * @var \Drupal\monitoring\SensorRunner
   */
  protected $sensorRunner;

  /**
   * Constructs a \Drupal\monitoring\Controller\TemporaryFilesController object.
   *
   * @param \Drupal\monitoring\SensorRunner $sensor_runner
   *   The sensor runner service.
   */
  public function __construct(SensorRunner $sensor_runner) {
    $this->sensorRunner = $sensor_runner;
  }

  /**
   * {@inheritdoc
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('monitoring.sensor_runner')
    );
  }

  /**
   * Makes a file permanent.
   *
   * @param \Drupal\monitoring\SensorConfigInterface $monitoring_sensor_config
   *   The sensor config.
   * @param \Drupal\file\FileInterface $file
   *   The file entity.
   *
   * @return \Symfony\Component\HttpFoundation\RedirectResponse
   */
  public function makePermanent(SensorConfigInterface $monitoring_sensor_config, FileInterface $file) {
    $file->setPermanent();
    $file->save();
    $this->sensorRunner->resetCache([$monitoring_sensor_config->id()]);
    $this->messenger()->addMessage(t('File @file is now permanent.', [
      '@file' => $file->getFilename(),
    ]), 'status');
    $url = $monitoring_sensor_config->toUrl('details-form');
    return $this->redirect($url->getRouteName(), $url->getRouteParameters());
  }
}

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

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