Repository navigation
Expand file tree
/
Copy pathKernel.php
More file actions
66 lines (52 loc) · 1.96 KB
/
Copy pathKernel.php
File metadata and controls
66 lines (52 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
namespace Krak\Validation;
use Krak\Cargo;
class Kernel extends Cargo\Container\ContainerDecorator
{
public function __construct(Cargo\Container $c = null) {
parent::__construct($c ?: Cargo\container());
Cargo\register($this, new ValidationServiceProvider());
$this->with(new ValidationPackage\CoreValidationPackage());
}
public function with(ValidationPackage $package) {
$package->withValidation($this);
}
public function withDoctrineValidators() {
return $this->with(new ValidationPackage\DoctrineValidationPackage());
}
public function validators(array $validators) {
foreach ($validators as $key => $value) {
$this['krak.validation.validators'][$key] = $value;
}
}
public function context(array $ctx) {
foreach ($ctx as $key => $value) {
$this['krak.validation.context'][$key] = $value;
}
}
public function aliases(array $aliases) {
$this['krak.validation.aliases'] = array_merge($this['krak.validation.aliases'], $aliases);
}
public function messages(array $messages) {
$this->pushMessageStore(new MessageStore\ArrayMessageStore($messages));
}
public function messageFile($file) {
$this->pushMessageStore(new MessageStore\LangFileMessageStore($file));
}
public function pushMessageStore(MessageStore $store) {
$this['krak.validation.messages']->push($store);
}
public function defaultMessage($message) {
$this['krak.validation.default_message'] = $message;
}
public function make($validations) {
return new WrappedValidator(
new ValidationContext\ForceContextValidationContext($this[ValidationContext::class]),
$this[MessageStore::class],
$this[FormatMessage::class],
$this[FormatViolations::class],
$this['krak.validation.context']->getArrayCopy(),
$validations
);
}
}