[TASK] Correctly initialize environment for DataHandler in tests
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Tests / Functional / SiteHandling / Fixtures / PhpError.php
1 <?php
2 declare(strict_types = 1);
3 namespace TYPO3\CMS\Frontend\Tests\Functional\SiteHandling\Fixtures;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
20 use TYPO3\CMS\Core\Error\PageErrorHandler\PageErrorHandlerInterface;
21 use TYPO3\CMS\Core\Http\JsonResponse;
22
23 /**
24 * Test case for frontend requests without having site handling configured
25 */
26 class PhpError implements PageErrorHandlerInterface
27 {
28 /**
29 * @var int
30 */
31 private $statusCode;
32
33 /**
34 * @var array
35 */
36 private $configuration;
37
38 /**
39 * @param int $statusCode
40 * @param array $configuration
41 */
42 public function __construct(int $statusCode, array $configuration)
43 {
44 $this->statusCode = $statusCode;
45 $this->configuration = $configuration;
46 }
47
48 /**
49 * @param ServerRequestInterface $request
50 * @param string $message
51 * @param array $reasons
52 * @return ResponseInterface
53 */
54 public function handlePageError(
55 ServerRequestInterface $request,
56 string $message,
57 array $reasons = []
58 ): ResponseInterface {
59 $data = [
60 'uri' => (string)$request->getUri(),
61 'message' => $message,
62 'reasons' => $reasons,
63 ];
64 return new JsonResponse($data, $this->statusCode);
65 }
66 }