/** * Create parameters for the method and their documentation * * @param Operation $operation * @param string[] $queryParamDocumentation * @param Context $context * * @return array */ protected function createParameters(Operation $operation, $queryParamDocumentation, Context $context) { $documentationParams = []; $methodParameters = []; if ($operation->getOperation()->getParameters()) { foreach ($operation->getOperation()->getParameters() as $parameter) { if ($parameter instanceof Reference) { $parameter = $this->getResolver()->resolve($parameter); } if ($parameter instanceof PathParameterSubSchema) { $methodParameters[] = $this->pathParameterGenerator->generateMethodParameter($parameter, $context); $documentationParams[] = sprintf(' * @param %s', $this->pathParameterGenerator->generateDocParameter($parameter, $context)); } } foreach ($operation->getOperation()->getParameters() as $parameter) { if ($parameter instanceof Reference) { $parameter = $this->getResolver()->resolve($parameter); } if ($parameter instanceof BodyParameter) { $methodParameters[] = $this->bodyParameterGenerator->generateMethodParameter($parameter, $context); $documentationParams[] = sprintf(' * @param %s', $this->bodyParameterGenerator->generateDocParameter($parameter, $context)); } } } if (!empty($queryParamDocumentation)) { $documentationParams[] = " * @param array \$parameters {"; $documentationParams = array_merge($documentationParams, array_map(function ($doc) { return " * " . $doc; }, $queryParamDocumentation)); $documentationParams[] = " * }"; } else { $documentationParams[] = " * @param array \$parameters List of parameters"; } $documentationParams[] = " * @param string \$fetch Fetch mode (object or response)"; $methodParameters[] = new Param('parameters', new Expr\Array_()); $methodParameters[] = new Param('fetch', new Expr\ConstFetch(new Name('self::FETCH_OBJECT'))); return [$documentationParams, $methodParameters]; }