/** * * @param TypeDoc $type * @param $version */ public static function createRecord($type, $version) { /** @var SearchApiType $model */ $model = new static(); $model->version = $version; $model->name = $type->name; $model->namespace = $type->namespace; $model->shortDescription = $type->shortDescription; $model->description = $type->description; $model->since = $type->since; $model->deprecatedSince = $type->deprecatedSince; $model->deprecatedReason = $type->deprecatedReason; if ($type instanceof ClassDoc) { $model->type = 'class'; } elseif ($type instanceof InterfaceDoc) { $model->type = 'interface'; } elseif ($type instanceof TraitDoc) { $model->type = 'trait'; } $model->insert(false); if ($type->methods !== null) { foreach ($type->methods as $method) { if ($method->visibility === 'private') { continue; } SearchApiPrimitive::createRecord($model, $method, $version); } } if ($type->properties !== null) { foreach ($type->properties as $property) { if ($property->visibility === 'private') { continue; } SearchApiPrimitive::createRecord($model, $property, $version); } } if ($type instanceof ClassDoc) { foreach ($type->constants as $const) { SearchApiPrimitive::createRecord($model, $const, $version); } foreach ($type->events as $event) { SearchApiPrimitive::createRecord($model, $event, $version); } } }