File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Knuckles \Scribe \Extracting \Shared \ValidationRulesFinders ;
4+
5+ use PhpParser \Node ;
6+
7+ /**
8+ * This class looks for
9+ * $anyVariable = Request::validate(...);
10+ * or just
11+ * Request::validate(...);
12+ *
13+ * Also supports `->validateWithBag('', ...)`
14+ */
15+ class RequestValidateFacade
16+ {
17+ public static function find (Node $ node )
18+ {
19+ if (!($ node instanceof Node \Stmt \Expression)) return ;
20+
21+ $ expr = $ node ->expr ;
22+ if ($ expr instanceof Node \Expr \Assign) {
23+ $ expr = $ expr ->expr ; // If it's an assignment, get the expression on the RHS
24+ }
25+
26+ if (
27+ $ expr instanceof Node \Expr \StaticCall
28+ && in_array ((string ) $ expr ->class , ['Request ' , \Illuminate \Support \Facades \Request::class])
29+ ) {
30+ if ($ expr ->name ->name == "validate " ) {
31+ return $ expr ->args [0 ]->value ;
32+ }
33+
34+ if ($ expr ->name ->name == "validateWithBag " ) {
35+ return $ expr ->args [1 ]->value ;
36+ }
37+ }
38+ }
39+ }
Original file line number Diff line number Diff line change @@ -175,6 +175,7 @@ protected function findValidationExpression($statements): ?array
175175 {
176176 $ strategies = [
177177 RequestValidate::class, // $request->validate(...);
178+ RequestValidateFacade::class, // Request::validate(...);
178179 ValidatorMake::class, // Validator::make($request, ...)
179180 ThisValidate::class, // $this->validate(...);
180181 ];
You can’t perform that action at this time.
0 commit comments