Subversion-Projekte lars-tiefland.laravel_shop

Revision

Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Foundation\Http\Middleware;
4
 
5
use Closure;
6
 
7
class TrimStrings extends TransformsRequest
8
{
9
    /**
10
     * All of the registered skip callbacks.
11
     *
12
     * @var array
13
     */
14
    protected static $skipCallbacks = [];
15
 
16
    /**
17
     * The attributes that should not be trimmed.
18
     *
19
     * @var array
20
     */
21
    protected $except = [
22
        //
23
    ];
24
 
25
    /**
26
     * Handle an incoming request.
27
     *
28
     * @param  \Illuminate\Http\Request  $request
29
     * @param  \Closure  $next
30
     * @return mixed
31
     */
32
    public function handle($request, Closure $next)
33
    {
34
        foreach (static::$skipCallbacks as $callback) {
35
            if ($callback($request)) {
36
                return $next($request);
37
            }
38
        }
39
 
40
        return parent::handle($request, $next);
41
    }
42
 
43
    /**
44
     * Transform the given value.
45
     *
46
     * @param  string  $key
47
     * @param  mixed  $value
48
     * @return mixed
49
     */
50
    protected function transform($key, $value)
51
    {
52
        if (in_array($key, $this->except, true) || ! is_string($value)) {
53
            return $value;
54
        }
55
 
56
        return preg_replace('~^[\s​]+|[\s​]+$~u', '', $value) ?? trim($value);
57
    }
58
 
59
    /**
60
     * Register a callback that instructs the middleware to be skipped.
61
     *
62
     * @param  \Closure  $callback
63
     * @return void
64
     */
65
    public static function skipWhen(Closure $callback)
66
    {
67
        static::$skipCallbacks[] = $callback;
68
    }
69
}