Skip to content

Commit 6621b98

Browse files
committed
Merge branch 'release/0.2.6'
2 parents 21b19a5 + 0024151 commit 6621b98

File tree

4 files changed

+135
-1
lines changed

4 files changed

+135
-1
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,30 @@ if(!$validator->validate()){
133133

134134
Create instance of `Validator`.
135135

136+
##### `addValue(string $name, mixed $value)`
137+
138+
Add value.
139+
140+
##### `addValues(array $values)`
141+
142+
Add multiple values.
143+
144+
##### `values() : array`
145+
146+
Returns an array of values.
147+
148+
##### `addRule(string $name, mixed $rule)`
149+
150+
Add rules.
151+
152+
##### `addRules(array $rules)`
153+
154+
Add multiple rules.
155+
156+
##### `rules() : array`
157+
158+
Returns an array of rules.
159+
136160
##### `validate() : bool`
137161

138162
Validate the data based on the rules.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "nonamephp/php7-common",
33
"description": "A collection of common PHP 7 libraries",
4-
"version": "0.2.5",
4+
"version": "0.2.6",
55
"license": "MIT",
66
"authors": [
77
{

src/Validator.php

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,72 @@ public static function __callStatic($method, $arguments)
147147
throw new \BadMethodCallException("Validator::{$method}() not defined.");
148148
}
149149

150+
/**
151+
* Add value.
152+
*
153+
* @param string $name
154+
* @param mixed $value
155+
*/
156+
public function addValue(string $name, $value)
157+
{
158+
$this->values->set($name, $value);
159+
}
160+
161+
/**
162+
* Add multiple values.
163+
*
164+
* @param array $values
165+
*/
166+
public function addValues(array $values)
167+
{
168+
foreach ($values as $name => $value) {
169+
$this->values->set($name, $value);
170+
}
171+
}
172+
173+
/**
174+
* Get values.
175+
*
176+
* @return array
177+
*/
178+
public function values() : array
179+
{
180+
return $this->values->toArray();
181+
}
182+
183+
/**
184+
* Add rule.
185+
*
186+
* @param string $name
187+
* @param mixed $rule
188+
*/
189+
public function addRule(string $name, $rule)
190+
{
191+
$this->rules->set($name, $rule);
192+
}
193+
194+
/**
195+
* Add multiple rules.
196+
*
197+
* @param array $rules
198+
*/
199+
public function addRules(array $rules)
200+
{
201+
foreach ($rules as $name => $rule) {
202+
$this->rules->set($name, $rule);
203+
}
204+
}
205+
206+
/**
207+
* Get rules.
208+
*
209+
* @return array
210+
*/
211+
public function rules() : array
212+
{
213+
return $this->rules->toArray();
214+
}
215+
150216
/**
151217
* Validate the values based on the rules.
152218
*

tests/ValidatorTest.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,50 @@ protected function tearDown()
9393
///////////////////////////////////
9494
// Tests
9595

96+
/**
97+
* @covers Validator::addValue, Validator::addValues, Validator::values
98+
*/
99+
public function testAddValue()
100+
{
101+
$validator = new Validator();
102+
103+
// Add single value
104+
$validator->addValue('a', 'b');
105+
106+
// Add multiple values
107+
$validator->addValues(['b' => 'c', 'c' => 'd']);
108+
109+
// Get values from validator
110+
$values = $validator->values();
111+
112+
// Assertions
113+
$this->assertTrue(isset($values['a']) && $values['a'] == 'b');
114+
$this->assertTrue(isset($values['b']) && $values['b'] == 'c');
115+
$this->assertTrue(isset($values['c']) && $values['c'] == 'd');
116+
}
117+
118+
/**
119+
* @covers Validator::addRule, Validator::addRules, Validator::rules
120+
*/
121+
public function testAddRule()
122+
{
123+
$validator = new Validator();
124+
125+
// Add single rule
126+
$validator->addRule('a', 'int');
127+
128+
// Add multiple rules
129+
$validator->addRules(['b' => 'str', 'c' => 'bool']);
130+
131+
// Get rules from validator
132+
$rules = $validator->rules();
133+
134+
// Assertions
135+
$this->assertTrue(isset($rules['a']) && $rules['a'] == 'int');
136+
$this->assertTrue(isset($rules['b']) && $rules['b'] == 'str');
137+
$this->assertTrue(isset($rules['c']) && $rules['c'] == 'bool');
138+
}
139+
96140
/**
97141
* @covers Validator::validate, Validator::hasErrors, Validator::getErrors
98142
*/

0 commit comments

Comments
 (0)