Skip to content

Commit d42ba70

Browse files
committed
Format like in jquery
1 parent b9b3549 commit d42ba70

13 files changed

+122
-117
lines changed

src/PHPValidation/Rules/Max.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Max extends Base
1111
{
12-
public $message = "Please enter a value less than or equal to %s.";
12+
public $message = "Please enter a value less than or equal to {0}.";
1313

1414
/**
1515
* Makes the element require a given maximum.

src/PHPValidation/Rules/MaxWords.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
class MaxWords extends Base
99
{
10-
public $message = "Please enter %s words or less.";
10+
public $message = "Please enter {0} words or less.";
1111

1212
/**
1313
* @param mixed $value

src/PHPValidation/Rules/Maxlength.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Maxlength extends Base
1111
{
12-
public $message = "Please enter no more than %s characters.";
12+
public $message = "Please enter no more than {0} characters.";
1313

1414
/**
1515
* Makes the element require a given maxmimum length.

src/PHPValidation/Rules/Min.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Min extends Base
1111
{
12-
public $message = "Please enter a value greater than or equal to %s.";
12+
public $message = "Please enter a value greater than or equal to {0}.";
1313

1414
/**
1515
* Makes the element require a given minimum.

src/PHPValidation/Rules/MinWords.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
class MinWords extends Base
99
{
10-
public $message = "Please enter at least %s words.";
10+
public $message = "Please enter at least {0} words.";
1111

1212
/**
1313
* @param mixed $value

src/PHPValidation/Rules/Minlength.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Minlength extends Base
1111
{
12-
public $message = "Please enter at least %s characters.";
12+
public $message = "Please enter at least {0} characters.";
1313

1414
/**
1515
* Makes the element require a given minimum length.

src/PHPValidation/Rules/Range.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Range extends Base
1111
{
12-
public $message = "Please enter a value between %s and %s.";
12+
public $message = "Please enter a value between {0} and {1}.";
1313

1414
/**
1515
* Makes the element require a given value range.

src/PHPValidation/Rules/RangeWords.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
class RangeWords extends Base
99
{
10-
public $message = "Please enter between %s and %s words.";
10+
public $message = "Please enter between {0} and {1} words.";
1111

1212
/**
1313
* @param mixed $value

src/PHPValidation/Rules/Rangelength.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
class Rangelength extends Base
1111
{
12-
public $message = "Please enter a value between %s and %s characters long.";
12+
public $message = "Please enter a value between {0} and {1} characters long.";
1313

1414
/**
1515
* Makes the element require a given value range.

src/PHPValidation/Rules/Strippedminlength.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
class Strippedminlength extends Base
99
{
10-
public $message = "Please enter at least %s characters.";
10+
public $message = "Please enter at least {0} characters.";
1111

1212
/**
1313
* TODO check if value starts with <, otherwise don't try stripping anything

src/PHPValidation/Validation.php

+30-24
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ class Validation
77

88
protected $methods = [];
99
protected $rules = [];
10-
protected $ignore = [];
1110

1211
protected $params = [];
1312
protected $errors = [];
@@ -31,7 +30,7 @@ public function __construct() {}
3130
*/
3231
public function messages(array $messages)
3332
{
34-
$this->messages = array_merge($this->messages, $messages);
33+
$this->messages = array_replace_recursive($this->messages, $messages);
3534
}
3635

3736
/**
@@ -49,16 +48,6 @@ public function rules(array $rules)
4948
$this->rules = $rules;
5049
}
5150

52-
/**
53-
* Elements to ignore when validating, simply filtering them out.
54-
*
55-
* @param array $fields
56-
*/
57-
public function ignore(array $fields)
58-
{
59-
$this->ignore = $fields;
60-
}
61-
6251
/**
6352
* Add a custom validation method.
6453
* It must consist of a name, a lambda function and a default string message.
@@ -73,7 +62,7 @@ public function addMethod($name, $method, $message = null)
7362
return false;
7463
}
7564

76-
$rule = new \PHPValidation\Rules\Custom($this);
65+
$rule = new \PHPValidation\Rules\Custom($this);
7766
$rule->method = $method;
7867
if (!is_null($message)) {
7968
$rule->message = $message;
@@ -202,14 +191,36 @@ protected function error($value, $rule, $options = null, $field = null)
202191
}
203192

204193
if (isset($message) && is_string($message)) {
205-
if (is_array($options)) {
206-
$message = @vsprintf($message, $options) ?: $message;
207-
} else {
208-
$message = @sprintf($message, $options) ?: $message;
209-
}
194+
$message = $this->format($message, $options);
195+
}
196+
197+
return is_scalar($message) ? $message : '';
198+
}
199+
200+
/**
201+
* Replaces {n} placeholders with arguments.
202+
*/
203+
protected function format($source, $params)
204+
{
205+
$argsv = func_get_args();
206+
$argsc = func_num_args();
207+
208+
if ($argsc > 2 && !is_array($params)) {
209+
$params = array_slice($argsv, 1);
210+
}
211+
if (!is_array($params)) {
212+
$params = [$params];
213+
}
214+
foreach ($params as $i => $n) {
215+
$source = preg_replace("/\{" . preg_quote($i) . "\}/", $n, $source);
210216
}
211217

212-
return is_string($message) ? $message : '';
218+
return $source;
219+
}
220+
221+
public function param($name)
222+
{
223+
return @$this->params[$name];
213224
}
214225

215226
/*=============================
@@ -252,9 +263,4 @@ public function depend($options, $value = null)
252263

253264
return true;
254265
}
255-
256-
public function param($name)
257-
{
258-
return @$this->params[$name];
259-
}
260266
}

0 commit comments

Comments
 (0)