Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Illuminate\Validation;
4
 
5
use Illuminate\Contracts\Support\DeferrableProvider;
6
use Illuminate\Contracts\Validation\UncompromisedVerifier;
7
use Illuminate\Http\Client\Factory as HttpFactory;
8
use Illuminate\Support\ServiceProvider;
9
 
10
class ValidationServiceProvider extends ServiceProvider implements DeferrableProvider
11
{
12
    /**
13
     * Register the service provider.
14
     *
15
     * @return void
16
     */
17
    public function register()
18
    {
19
        $this->registerPresenceVerifier();
20
        $this->registerUncompromisedVerifier();
21
        $this->registerValidationFactory();
22
    }
23
 
24
    /**
25
     * Register the validation factory.
26
     *
27
     * @return void
28
     */
29
    protected function registerValidationFactory()
30
    {
31
        $this->app->singleton('validator', function ($app) {
32
            $validator = new Factory($app['translator'], $app);
33
 
34
            // The validation presence verifier is responsible for determining the existence of
35
            // values in a given data collection which is typically a relational database or
36
            // other persistent data stores. It is used to check for "uniqueness" as well.
37
            if (isset($app['db'], $app['validation.presence'])) {
38
                $validator->setPresenceVerifier($app['validation.presence']);
39
            }
40
 
41
            return $validator;
42
        });
43
    }
44
 
45
    /**
46
     * Register the database presence verifier.
47
     *
48
     * @return void
49
     */
50
    protected function registerPresenceVerifier()
51
    {
52
        $this->app->singleton('validation.presence', function ($app) {
53
            return new DatabasePresenceVerifier($app['db']);
54
        });
55
    }
56
 
57
    /**
58
     * Register the uncompromised password verifier.
59
     *
60
     * @return void
61
     */
62
    protected function registerUncompromisedVerifier()
63
    {
64
        $this->app->singleton(UncompromisedVerifier::class, function ($app) {
65
            return new NotPwnedVerifier($app[HttpFactory::class]);
66
        });
67
    }
68
 
69
    /**
70
     * Get the services provided by the provider.
71
     *
72
     * @return array
73
     */
74
    public function provides()
75
    {
76
        return [
77
            'validator', 'validation.presence',
78
        ];
79
    }
80
}