ConfigurationProcessor.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * @package Grav\Common\Processors
  4. *
  5. * @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
  6. * @license MIT License; see LICENSE file for details.
  7. */
  8. namespace Grav\Common\Processors;
  9. use Grav\Framework\File\Formatter\YamlFormatter;
  10. use Grav\Framework\File\YamlFile;
  11. use Psr\Http\Message\ResponseInterface;
  12. use Psr\Http\Message\ServerRequestInterface;
  13. use Psr\Http\Server\RequestHandlerInterface;
  14. class ConfigurationProcessor extends ProcessorBase
  15. {
  16. public $id = '_config';
  17. public $title = 'Configuration';
  18. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
  19. {
  20. $this->startTimer();
  21. $config = $this->container['config'];
  22. $config->init();
  23. $this->container['plugins']->setup();
  24. if ($config->get('versions') === null) {
  25. $filename = GRAV_ROOT . '/user/config/versions.yaml';
  26. if (!is_file($filename)) {
  27. $versions = [
  28. 'core' => [
  29. 'grav' => [
  30. 'version' => GRAV_VERSION,
  31. 'history' => ['version' => GRAV_VERSION, 'date' => gmdate('Y-m-d H:i:s')]
  32. ]
  33. ]
  34. ];
  35. $config->set('versions', $versions);
  36. $file = new YamlFile($filename, new YamlFormatter(['inline' => 4]));
  37. $file->save($versions);
  38. }
  39. }
  40. $this->stopTimer();
  41. return $handler->handle($request);
  42. }
  43. }