Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add processor config section to reference #1618

Merged
merged 2 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 33 additions & 5 deletions docs/reference/processors.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,34 @@ For improvements head over to [GitHub](https://github.com/zircote/swagger-php) a

*Processors are listed in the default order of execution.*

## Processor Configuration
### Command line
The `-c` option allows to specify a name/value pair with the name consisting
of the processor name (starting lowercase) and option name separated by a dot (`.`).

```shell
> ./bin/openapi -c operatinId.hash=true // ...
> ./bin/openapi -c pathFilter.tags[]=/pets/ -c pathFilter.tags[]=/store/ // ...
```

### Programmatically with PHP
Configuration can be set using the `Generator::setConfig()` method. Keys can either be the same
as on the command line or be broken down into nested arrays.

```php
(new Generator())
->setConfig([
'operationId.hash' => true,
'pathFilter' => [
'tags' => [
'/pets/',
'/store/',
],
],
]);
```


## Default Processors
### [DocBlockDescriptions](https://github.com/zircote/swagger-php/tree/master/src/Processors/DocBlockDescriptions.php)

Expand Down Expand Up @@ -62,7 +90,7 @@ Augments shared and operations parameters from docblock comments.
#### Config settings
<dl>
<dt><strong>augmentParameters.augmentOperationParameters</strong> : <span style="font-family: monospace;">bool</span></dt>
<dt><strong>default</strong> : : <span style="font-family: monospace;">true</span></dt>
<dt><strong>default</strong> : <span style="font-family: monospace;">true</span></dt>
<dd><p>If set to <code>true</code> try to find operation parameter descriptions in the operation docblock.</p> </dd>
</dl>

Expand All @@ -82,7 +110,7 @@ Generate the OperationId based on the context of the OpenApi annotation.
#### Config settings
<dl>
<dt><strong>operationId.hash</strong> : <span style="font-family: monospace;">bool</span></dt>
<dt><strong>default</strong> : : <span style="font-family: monospace;">true</span></dt>
<dt><strong>default</strong> : <span style="font-family: monospace;">true</span></dt>
<dd><p>If set to <code>true</code> generate ids (md5) instead of clear text operation ids.</p> </dd>
</dl>

Expand All @@ -102,12 +130,12 @@ All filter (regular) expressions must be enclosed within delimiter characters as
#### Config settings
<dl>
<dt><strong>pathFilter.tags</strong> : <span style="font-family: monospace;">array</span></dt>
<dt><strong>default</strong> : : <span style="font-family: monospace;">[]</span></dt>
<dt><strong>default</strong> : <span style="font-family: monospace;">[]</span></dt>
<dd><p>A list of regular expressions to match <code>tags</code> to include.</p> </dd>
</dl>
<dl>
<dt><strong>pathFilter.paths</strong> : <span style="font-family: monospace;">array</span></dt>
<dt><strong>default</strong> : : <span style="font-family: monospace;">[]</span></dt>
<dt><strong>default</strong> : <span style="font-family: monospace;">[]</span></dt>
<dd><p>A list of regular expressions to match <code>paths</code> to include.</p> </dd>
</dl>

Expand All @@ -118,7 +146,7 @@ Tracks the use of all <code>Components</code> and removed unused schemas.
#### Config settings
<dl>
<dt><strong>cleanUnusedComponents.enabled</strong> : <span style="font-family: monospace;">bool</span></dt>
<dt><strong>default</strong> : : <span style="font-family: monospace;">false</span></dt>
<dt><strong>default</strong> : <span style="font-family: monospace;">false</span></dt>
<dd><p>Enables/disables the <code>CleanUnusedComponents</code> processor.</p> </dd>
</dl>

Expand Down
40 changes: 38 additions & 2 deletions tools/procgen.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,44 @@
ob_start();

echo $procgen->preamble('Processors');
echo PHP_EOL . '## Default Processors' . PHP_EOL;

echo PHP_EOL . '## Processor Configuration' . PHP_EOL;

echo '### Command line' . PHP_EOL;
echo <<< EOT
The `-c` option allows to specify a name/value pair with the name consisting
of the processor name (starting lowercase) and option name separated by a dot (`.`).

```shell
> ./bin/openapi -c operatinId.hash=true // ...
> ./bin/openapi -c pathFilter.tags[]=/pets/ -c pathFilter.tags[]=/store/ // ...
```


EOT;

echo '### Programmatically with PHP' . PHP_EOL;
echo <<< EOT
Configuration can be set using the `Generator::setConfig()` method. Keys can either be the same
as on the command line or be broken down into nested arrays.

```php
(new Generator())
->setConfig([
'operationId.hash' => true,
'pathFilter' => [
'tags' => [
'/pets/',
'/store/',
],
],
]);
```


EOT;

echo PHP_EOL . '## Default Processors' . PHP_EOL;
foreach ($procgen->getProcessorsDetails() as $ii => $details) {
$off = $ii + 1;
echo $procgen->formatClassHeader($details['name'], 'Processors');
Expand All @@ -26,7 +62,7 @@

echo '<dl>' . PHP_EOL;
echo ' <dt><strong>' . $configPrefix . $name . '</strong>' . $var . '</dt>' . PHP_EOL;
echo ' <dt><strong>default</strong> : ' . $default . '</dt>' . PHP_EOL;
echo ' <dt><strong>default</strong>' . $default . '</dt>' . PHP_EOL;
echo ' <dd>';
echo '<p>' . nl2br($odetails['phpdoc'] ? $odetails['phpdoc']['content'] : ProcGenerator::NO_DETAILS_AVAILABLE) . '</p>';
echo ' </dd>' . PHP_EOL;
Expand Down