Skip to content

Commit 9ec6676

Browse files
authored
Merge 3a11b40 into 0764413
2 parents 0764413 + 3a11b40 commit 9ec6676

File tree

7 files changed

+38
-11
lines changed

7 files changed

+38
-11
lines changed

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
theme: jekyll-theme-minimal

src/Javascript/MessageParser.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function getMessage($attribute, $rule, $parameters)
3434
$data = $this->fakeValidationData($attribute, $rule, $parameters);
3535

3636
$message = $this->validator->getMessage($attribute, $rule);
37-
$message = $this->validator->doReplacements($message, $attribute, $rule, $parameters);
37+
$message = $this->validator->makeReplacements($message, $attribute, $rule, $parameters);
3838

3939
$this->validator->setData($data);
4040

src/JsValidatorFactory.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Proengsoft\JsValidation\Support\DelegatedValidator;
1111
use Proengsoft\JsValidation\Javascript\ValidatorHandler;
1212
use Proengsoft\JsValidation\Javascript\JavascriptValidator;
13+
use Proengsoft\JsValidation\Support\ValidationRuleParserProxy;
1314

1415
class JsValidatorFactory
1516
{
@@ -157,7 +158,7 @@ protected function createFormRequest($class)
157158
$formRequest = $this->app->build($class, $params);
158159

159160
if ($session = $request->getSession()) {
160-
$formRequest->setSession($session);
161+
$formRequest->setLaravelSession($session);
161162
}
162163
$formRequest->setUserResolver($request->getUserResolver());
163164
$formRequest->setRouteResolver($request->getRouteResolver());
@@ -194,7 +195,7 @@ protected function jsValidator(Validator $validator, $selector = null)
194195
$view = $this->options['view'];
195196
$selector = is_null($selector) ? $this->options['form_selector'] : $selector;
196197

197-
$delegated = new DelegatedValidator($validator);
198+
$delegated = new DelegatedValidator($validator, new ValidationRuleParserProxy());
198199
$rules = new RuleParser($delegated, $this->getSessionToken());
199200
$messages = new MessageParser($delegated);
200201

src/Remote/Validator.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Illuminate\Http\JsonResponse;
66
use Proengsoft\JsValidation\Support\RuleListTrait;
7-
use Illuminate\Http\Exception\HttpResponseException;
7+
use Illuminate\Http\Exceptions\HttpResponseException;
88
use Illuminate\Validation\Validator as BaseValidator;
99
use Proengsoft\JsValidation\Support\AccessProtectedTrait;
1010

@@ -57,7 +57,7 @@ public function validate($field, $parameters = [])
5757
* @param \Illuminate\Validation\Validator $validator
5858
* @return void
5959
*
60-
* @throws \Illuminate\Validation\ValidationException|\Illuminate\Http\Exception\HttpResponseException
60+
* @throws \Illuminate\Validation\ValidationException|\Illuminate\Http\Exceptions\HttpResponseException
6161
*/
6262
protected function throwValidationException($result, $validator)
6363
{
@@ -153,7 +153,7 @@ protected function purgeNonRemoteRules($rules, $validator)
153153
$protectedValidator = $this->createProtectedCaller($validator);
154154

155155
foreach ($rules as $i => $rule) {
156-
$parsedRule = call_user_func($protectedValidator, 'parseRule', [$rule]);
156+
$parsedRule = ValidationRuleParser::parse([$rule]);
157157
if (! $this->isRemoteRule($parsedRule[0])) {
158158
unset($rules[$i]);
159159
}

src/Support/DelegatedValidator.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ class DelegatedValidator
1515
*/
1616
protected $validator;
1717

18+
/**
19+
+ * Validation rule parser instance.
20+
+ *
21+
+ * @var \Proengsoft\JsValidation\Support\ValidationRuleParserProxy
22+
+ */
23+
protected $ruleParser;
24+
1825
/**
1926
* Closure to invoke non accessible Validator methods.
2027
*
@@ -26,10 +33,12 @@ class DelegatedValidator
2633
* DelegatedValidator constructor.
2734
*
2835
* @param \Illuminate\Validation\Validator $validator
36+
* * @param \Proengsoft\JsValidation\Support\ValidationRuleParserProxy $ruleParser
2937
*/
30-
public function __construct(BaseValidator $validator)
38+
public function __construct(BaseValidator $validator, ValidationRuleParserProxy $ruleParser)
3139
{
3240
$this->validator = $validator;
41+
$this->ruleParser = $ruleParser;
3342
$this->validatorMethod = $this->createProtectedCaller($validator);
3443
}
3544

@@ -107,9 +116,9 @@ public function isImplicit($rule)
107116
*
108117
* @return string
109118
*/
110-
public function doReplacements($message, $attribute, $rule, $parameters)
119+
public function makeReplacements($message, $attribute, $rule, $parameters)
111120
{
112-
return $this->callValidator('doReplacements', [$message, $attribute, $rule, $parameters]);
121+
return $this->callValidator('makeReplacements', [$message, $attribute, $rule, $parameters]);
113122
}
114123

115124
/**
@@ -147,7 +156,7 @@ public function getMessage($attribute, $rule)
147156
*/
148157
public function parseRule($rules)
149158
{
150-
return $this->callValidator('parseRule', [$rules]);
159+
return $this->ruleParser->parse($rules);
151160
}
152161

153162
/**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
namespace Proengsoft\JsValidation\Support;
3+
use Illuminate\Validation\ValidationRuleParser;
4+
class ValidationRuleParserProxy
5+
{
6+
/**
7+
* Extract the rule name and parameters from a rule.
8+
*
9+
* @param array|string $rules
10+
* @return array
11+
*/
12+
public function parse($rules)
13+
{
14+
return ValidationRuleParser::parse($rules);
15+
}
16+
}

tests/Remote/ResolverTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace Proengsoft\JsValidation\Tests\Remote;
55

6-
use Illuminate\Http\Exception\HttpResponseException;
6+
use Illuminate\Http\Exceptions\HttpResponseException;
77
use Proengsoft\JsValidation\Remote\Resolver;
88

99
require_once __DIR__.'/../stubs/ResolverTest.php';

0 commit comments

Comments
 (0)