/** * @param string $verbName * @param Tag $tag */ public function addVerb($verbName, $tag) { $in = \Yii::$app->controller->module->defaultInput; $verb = new Verb($verbName, $this->action, $in); $verb->tags->add($tag); $this->verbs->add($verb); }
/** * @param Parameter $parameter */ public function addPropertyFromParameter($parameter) { $property = new Property(); $property->name = $parameter->name; $property->type = $parameter->type; $this->properties->add($property); }
/** * @param Action $action */ public function handleAction($action) { $lastTag = $this->tags->last(); $path = new Path($action); $verbs = $this->getVerbsForAction($action); foreach ($verbs as $verb) { $path->addVerb($verb, $lastTag); } $this->paths->add($path); }
/** * Create definitions if need * @throws \yii\base\InvalidConfigException */ private function buildDefinitions() { if ($this->in != 'body') { return; } $def = new Definition($this->action); // get parameters and make of them a properties for definition foreach ($this->parameters as $id => $parameter) { /** @var Parameter $parameter */ if ($parameter->in != 'body') { continue; } $this->parameters->delete($parameter); $def->addPropertyFromParameter($parameter); } Yii::$app->get('doc')->definitions->add($def); // we must create parameter with Schema for definition $parameter = new Parameter(); $parameter->buildForDefinition($def); $this->parameters->add($parameter); }