Passed
Push — 1.x ( 938550...cada6e )
by Milwad
03:42 queued 14s
created

LaravelValidateServiceProvider::boot()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
c 0
b 0
f 0
nc 2
nop 0
dl 0
loc 6
rs 10
1
<?php
2
3
namespace Milwad\LaravelValidate;
4
5
use Illuminate\Support\ServiceProvider;
6
use Milwad\LaravelValidate\Utils\CountryPhoneCallback;
7
8
class LaravelValidateServiceProvider extends ServiceProvider
9
{
10
    /**
11
     * Languages names.
12
     *
13
     * @var array|string[]
14
     */
15
    public array $langs = [
16
        'ar',
17
        'az',
18
        'bn',
19
        'ca',
20
        'de',
21
        'el',
22
        'en',
23
        'es',
24
        'fa',
25
        'fr',
26
        'hi',
27
        'id',
28
        'It',
29
        'ja',
30
        'ko',
31
        'ku_so',
32
        'mk',
33
        'pt_BR',
34
        'ru',
35
        'si',
36
        'sv',
37
        'tr',
38
        'uk',
39
        'zh_CN',
40
    ];
41
42
    /**
43
     * Register files.
44
     */
45
    public function register(): void
46
    {
47
        if ($this->app->runningInConsole()) {
48
            $this->publishLangFiles();
49
            $this->publishConfigFile();
50
        }
51
52
        $this->loadTranslationsFrom(__DIR__.'/lang', 'validation');
53
        $this->mergeConfigFrom(__DIR__.'/../config/laravel-validate.php', 'laravel-validate');
54
    }
55
56
    /**
57
     * Publish lang files.
58
     */
59
    private function publishLangFiles(): void
60
    {
61
        foreach ($this->langs as $lang) {
62
            $this->publishes([
63
                __DIR__."/lang/$lang" => lang_path($lang),
64
            ], "validate-lang-$lang");
65
        }
66
    }
67
68
    /**
69
     * Publish config file.
70
     */
71
    private function publishConfigFile(): void
72
    {
73
        $this->publishes([
74
            __DIR__.'/../config/laravel-validate.php' => config_path('laravel-validate.php'),
75
        ], 'laravel-validate-config');
76
    }
77
78
    /**
79
     * Boot applications.
80
     *
81
     * @throws \Throwable
82
     */
83
    public function boot(): void
84
    {
85
        $countries = config('laravel-validate.phone-country', []);
86
87
        foreach ($countries as $code => $country) {
88
            CountryPhoneCallback::addValidator($code, $country);
89
        }
90
    }
91
}
92