@@ -24,13 +24,11 @@ $rule = $rb->create(
24
24
}
25
25
);
26
26
27
- $context = new Context(array(
27
+ $context = new Context([
28
28
'minNumPeople' => 5,
29
29
'maxNumPeople' => 25,
30
- 'actualNumPeople' => function() {
31
- return 6;
32
- },
33
- ));
30
+ 'actualNumPeople' => fn() => 6,
31
+ ]);
34
32
35
33
$rule->execute($context); // "Yay!"
36
34
```
@@ -43,22 +41,20 @@ $rule->execute($context); // "Yay!"
43
41
``` php
44
42
$actualNumPeople = new Variable('actualNumPeople');
45
43
$rule = new Rule(
46
- new Operator\LogicalAnd(array(
44
+ new Operator\LogicalAnd([
47
45
new Operator\LessThanOrEqualTo(new Variable('minNumPeople'), $actualNumPeople),
48
46
new Operator\GreaterThanOrEqualTo(new Variable('maxNumPeople'), $actualNumPeople)
49
- ) ),
47
+ ] ),
50
48
function() {
51
49
echo 'YAY!';
52
50
}
53
51
);
54
52
55
- $context = new Context(array(
53
+ $context = new Context([
56
54
'minNumPeople' => 5,
57
55
'maxNumPeople' => 25,
58
- 'actualNumPeople' => function() {
59
- return 6;
60
- },
61
- ));
56
+ 'actualNumPeople' => fn() => 6,
57
+ ]);
62
58
63
59
$rule->execute($context); // "Yay!"
64
60
```
@@ -166,10 +162,10 @@ $eitherOne = $rb->create($rb->logicalOr($aEqualsB, $aDoesNotEqualB));
166
162
167
163
// Just to mix things up, we'll populate our evaluation context with completely
168
164
// random values...
169
- $context = new Context(array(
165
+ $context = new Context([
170
166
'a' => rand(),
171
167
'b' => rand(),
172
- ) );
168
+ ] );
173
169
174
170
// Hint: this is always true!
175
171
$eitherOne->evaluate($context);
@@ -191,11 +187,9 @@ $rb->logicalXor($aEqualsB, $aDoesNotEqualB); // True if only one condition is tr
191
187
` evaluate() ` a Rule with Context to figure out whether it is true.
192
188
193
189
``` php
194
- $context = new Context(array(
195
- 'userName' => function() {
196
- return isset($_SESSION['userName']) ? $_SESSION['userName'] : null;
197
- }
198
- ));
190
+ $context = new Context([
191
+ 'userName' => fn() => $_SESSION['userName'] ?? null,
192
+ ]);
199
193
200
194
$userIsLoggedIn = $rb->create($rb['userName']->notEqualTo(null));
201
195
@@ -239,7 +233,7 @@ $hiEveryoneElse = $rb->create(
239
233
}
240
234
);
241
235
242
- $rules = new RuleSet(array( $hiJustin, $hiJon, $hiEveryoneElse) );
236
+ $rules = new RuleSet([ $hiJustin, $hiJon, $hiEveryoneElse] );
243
237
244
238
// Let's add one more Rule, so non-authenticated users have a chance to log in
245
239
$redirectForAuthentication = $rb->create($rb->logicalNot($userIsLoggedIn), function() {
@@ -272,12 +266,10 @@ Rules.
272
266
$context = new Context;
273
267
274
268
// Some static values...
275
- $context['reallyAnnoyingUsers'] = array( 'bobthecow', 'jwage') ;
269
+ $context['reallyAnnoyingUsers'] = [ 'bobthecow', 'jwage'] ;
276
270
277
271
// You'll remember this one from before
278
- $context['userName'] = function() {
279
- return isset($_SESSION['userName']) ? $_SESSION['userName'] : null;
280
- };
272
+ $context['userName'] = fn() => $_SESSION['userName'] ?? null;
281
273
282
274
// Let's pretend you have an EntityManager named `$em`...
283
275
$context['user'] = function() use ($em, $context) {
@@ -334,7 +326,7 @@ $context['userRoles'] = function() use ($em, $context) {
334
326
return $user->roles();
335
327
} else {
336
328
// return a default "anonymous" role if there is no current user
337
- return array( 'anonymous') ;
329
+ return [ 'anonymous'] ;
338
330
}
339
331
};
340
332
@@ -366,7 +358,7 @@ their convenient RuleBuilder interface:
366
358
// We can skip over the Context Variable building above. We'll simply set our,
367
359
// default roles on the VariableProperty itself, then go right to writing rules:
368
360
369
- $rb['user']['roles'] = array( 'anonymous') ;
361
+ $rb['user']['roles'] = [ 'anonymous'] ;
370
362
371
363
$rb->create(
372
364
$rb->logicalAnd(
0 commit comments