SetLocale::handle()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 20
rs 9.6
c 0
b 0
f 0
cc 3
nc 3
nop 2
1
<?php
2
3
namespace BBSLab\NovaTranslation\Http\Middleware;
4
5
use BBSLab\NovaTranslation\Models\Locale;
6
use BBSLab\NovaTranslation\NovaTranslation;
7
use Illuminate\Support\Facades\Session;
8
9
class SetLocale
10
{
11
    /**
12
     * Handle the incoming request.
13
     *
14
     * @param  \Illuminate\Http\Request  $request
15
     * @param  \Closure  $next
16
     * @return \Illuminate\Http\Response
17
     */
18
    public function handle($request, $next)
19
    {
20
        if (Session::has(NovaTranslation::localeSessionKey())) {
21
            app()->setLocale(
22
                Session::get(NovaTranslation::localeSessionKey())
23
            );
24
        } else {
25
            $browserLocale = Locale::havingIso(
26
                // Take first 2 (as described flags in config)
27
                substr($request->server('HTTP_ACCEPT_LANGUAGE'), 0, 2)
28
            );
29
30
            $locale = $browserLocale ? $browserLocale->iso : config('app.locale');
31
            Session::put(NovaTranslation::localeSessionKey(), $locale);
32
33
            app()->setLocale($locale);
34
        }
35
36
        return $next($request);
37
    }
38
}
39