Passed
Push — main ( 15fdf2...e95f8b )
by Dimitri
04:25
created

ShareErrorsFromSession::process()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 13
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 13
ccs 0
cts 2
cp 0
crap 6
rs 10
1
<?php
2
3
/**
4
 * This file is part of Blitz PHP framework.
5
 *
6
 * (c) 2022 Dimitri Sitchet Tomkeu <[email protected]>
7
 *
8
 * For the full copyright and license information, please view
9
 * the LICENSE file that was distributed with this source code.
10
 */
11
12
namespace BlitzPHP\Middlewares;
13
14
use BlitzPHP\Validation\ErrorBag;
15
use BlitzPHP\View\View;
16
use Psr\Http\Message\ServerRequestInterface;
17
use Psr\Http\Message\ResponseInterface;
18
use Psr\Http\Server\MiddlewareInterface;
19
use Psr\Http\Server\RequestHandlerInterface;
20
21
class ShareErrorsFromSession implements MiddlewareInterface
22
{
23
    /**
24
     * Create a new error binder instance.
25
     */
26
    public function __construct(protected View $view)
27
    {
28
    }
29
30
	/**
31
	 * {@inheritDoc}
32
	 *
33
	 * @param \BlitzPHP\Http\Request $request
34
	 */
35
	public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
36
	{
37
		// Si la session courante a une variable "errors" liée à elle,
38
		// nous partagerons sa valeur avec toutes les instances de vue afin que les vues puissent facilement accéder aux erreurs sans avoir à se lier.
39
		// Un sac vide est défini lorsqu'il n'y a pas d'erreurs.
40
        $this->view->share(
41
            'errors',  new ErrorBag($request->session()->getFlashdata('errors') ?: [])
0 ignored issues
show
Bug introduced by
The method session() does not exist on Psr\Http\Message\ServerRequestInterface. It seems like you code against a sub-type of Psr\Http\Message\ServerRequestInterface such as BlitzPHP\Http\ServerRequest. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

41
            'errors',  new ErrorBag($request->/** @scrutinizer ignore-call */ session()->getFlashdata('errors') ?: [])
Loading history...
42
        );
43
44
        // Le fait de placer les erreurs dans la vue pour chaque vue permet au développeur de supposer que certaines erreurs sont toujours disponibles,
45
		// ce qui est pratique puisqu'il n'a pas à vérifier continuellement la présence d'erreurs.
46
47
        return $handler->handle($request);
48
    }
49
}
50