Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
RedirectActionResult
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 createResponse
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace PeServer\Core\Mvc\Result;
6
7use PeServer\Core\Http\HttpResponse;
8use PeServer\Core\Http\HttpStatus;
9use PeServer\Core\Mvc\Result\IActionResult;
10use PeServer\Core\Text;
11use PeServer\Core\Throws\ArgumentException;
12use PeServer\Core\Web\Url;
13
14/**
15 * 結果操作: リダイレクト。
16 */
17readonly class RedirectActionResult implements IActionResult
18{
19    public function __construct(
20        private Url $url,
21        private ?HttpStatus $status = null
22    ) {
23    }
24
25    #region IActionResult
26
27    public function createResponse(): HttpResponse
28    {
29        $response = new HttpResponse();
30        $status = $this->status ?? HttpStatus::Found;
31
32        $response->status = $status;
33        $response->header->setRedirect($this->url, $status);
34
35        return $response;
36    }
37
38    #endregion
39}