浏览代码

If a tag is marked as `No-example`, do not generate a value and filter it out of the `cleaned..Parameters` variables

Marnu Lombard 5 年之前
父节点
当前提交
d50365a5b7
共有 2 个文件被更改,包括 6 次插入2 次删除
  1. 2 2
      src/Tools/Generator.php
  2. 4 0
      src/Tools/Traits/ParamHelpers.php

+ 2 - 2
src/Tools/Generator.php

@@ -149,7 +149,7 @@ class Generator
 
 
                 $type = $this->normalizeParameterType($type);
                 $type = $this->normalizeParameterType($type);
                 list($description, $example) = $this->parseDescription($description, $type);
                 list($description, $example) = $this->parseDescription($description, $type);
-                $value = is_null($example) ? $this->generateDummyValue($type) : $example;
+                $value = is_null($example)  && !$this->shouldExcludeExample($tag) ? $this->generateDummyValue($type) : $example;
 
 
                 return [$name => compact('type', 'description', 'required', 'value')];
                 return [$name => compact('type', 'description', 'required', 'value')];
             })->toArray();
             })->toArray();
@@ -223,7 +223,7 @@ class Generator
                 }
                 }
 
 
                 list($description, $value) = $this->parseDescription($description, 'string');
                 list($description, $value) = $this->parseDescription($description, 'string');
-                if (is_null($value)) {
+                if (is_null($value) && !$this->shouldExcludeExample($tag)) {
                     $value = str_contains($description, ['number', 'count', 'page'])
                     $value = str_contains($description, ['number', 'count', 'page'])
                         ? $this->generateDummyValue('integer')
                         ? $this->generateDummyValue('integer')
                         : $this->generateDummyValue('string');
                         : $this->generateDummyValue('string');

+ 4 - 0
src/Tools/Traits/ParamHelpers.php

@@ -14,6 +14,10 @@ trait ParamHelpers
     protected function cleanParams(array $params)
     protected function cleanParams(array $params)
     {
     {
         $values = [];
         $values = [];
+        $params = array_filter($params, function ($details) {
+            return is_string($details['value']) && strlen($details['value']);
+        });
+
         foreach ($params as $name => $details) {
         foreach ($params as $name => $details) {
             $this->cleanValueFrom($name, $details['value'], $values);
             $this->cleanValueFrom($name, $details['value'], $values);
         }
         }