@@ -396,6 +396,48 @@ use the ``isPrivateIp()`` method from the
396
396
397
397
The ``isPrivateIp() `` method was introduced in Symfony 6.3.
398
398
399
+ Matching a Request Against a Set Rules
400
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
401
+
402
+ If you need to match a request against a set of rules, you can use
403
+ request matchers. The HttpFoundation component provides many matchers
404
+ to be used:
405
+
406
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ AttributesRequestMatcher `
407
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ ExpressionRequestMatcher `
408
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ HostRequestMatcher `
409
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ IpsRequestMatcher `
410
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ IsJsonMatcher `
411
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ MethodRequestMatcher `
412
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ PathRequestMatcher `
413
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ PortRequestMatcher `
414
+ * :class: `Symfony\\ Component\\ HttpFoundation\\ RequestMatcher\\ SchemeRequestMatcher `
415
+
416
+ You can either use them directly or combine them using the
417
+ :class: `Symfony\\ Component\\ HttpFoundation\\ ChainRequestMatcher `
418
+ class::
419
+
420
+ use Symfony\Component\HttpFoundation\ChainRequestMatcher;
421
+ use Symfony\Component\HttpFoundation\RequestMatcher\HostRequestMatcher;
422
+ use Symfony\Component\HttpFoundation\RequestMatcher\PathRequestMatcher;
423
+ use Symfony\Component\HttpFoundation\RequestMatcher\SchemeRequestMatcher;
424
+
425
+ // use only one criteria to match the request
426
+ $schemeMatcher = new SchemeRequestMatcher('https');
427
+ if ($schemeMatcher->matches($request)) {
428
+ // ...
429
+ }
430
+
431
+ // use a set of criteria to match the request
432
+ $matcher = new ChainRequestMatcher([
433
+ new HostRequestMatcher('example.com'),
434
+ new PathRequestMatcher('/admin'),
435
+ ]);
436
+
437
+ if ($matcher->matches($request)) {
438
+ // ...
439
+ }
440
+
399
441
Accessing other Data
400
442
~~~~~~~~~~~~~~~~~~~~
401
443
0 commit comments