InfyOm\Generator\Generators\SwaggerGenerator::generateTypes PHP Метод

generateTypes() публичный статический Метод

public static generateTypes ( $inputFields )
    public static function generateTypes($inputFields)
    {
        if (!empty(self::$swaggerTypes)) {
            return self::$swaggerTypes;
        }
        $fieldTypes = [];
        foreach ($inputFields as $field) {
            $fieldFormat = '';
            switch (strtolower($field['fieldType'])) {
                case 'integer':
                case 'increments':
                case 'smallinteger':
                case 'long':
                case 'bigint':
                    $fieldType = 'integer';
                    $fieldFormat = 'int32';
                    break;
                case 'double':
                    $fieldType = 'number';
                    $fieldFormat = 'double';
                    break;
                case 'float':
                case 'decimal':
                    $fieldType = 'number';
                    $fieldFormat = 'float';
                    break;
                case 'boolean':
                    $fieldType = 'boolean';
                    break;
                case 'string':
                case 'char':
                case 'text':
                case 'enum':
                    $fieldType = 'string';
                    break;
                case 'byte':
                    $fieldType = 'string';
                    $fieldFormat = 'byte';
                    break;
                case 'binary':
                    $fieldType = 'string';
                    $fieldFormat = 'binary';
                    break;
                case 'password':
                    $fieldType = 'string';
                    $fieldFormat = 'password';
                    break;
                case 'date':
                    $fieldType = 'string';
                    $fieldFormat = 'date';
                    break;
                case 'dateTime':
                case 'timestamp':
                    $fieldType = 'string';
                    $fieldFormat = 'date-time';
                    break;
                default:
                    $fieldType = null;
                    $fieldFormat = null;
                    break;
            }
            if (!empty($fieldType)) {
                $fieldType = ['name' => $field['fieldName'], 'type' => $fieldType, 'format' => $fieldFormat];
                if (isset($field['description'])) {
                    $fieldType['description'] = $field['description'];
                } else {
                    $fieldType['description'] = '';
                }
                $fieldTypes[] = $fieldType;
            }
        }
        self::$swaggerTypes = $fieldTypes;
        return self::$swaggerTypes;
    }

Usage Example

 public function generateSwagger($templateData)
 {
     $fieldTypes = SwaggerGenerator::generateTypes($this->commandData->inputFields);
     $template = TemplateUtil::getTemplate("model.model", 'swagger-generator');
     $template = TemplateUtil::fillTemplate($this->commandData->dynamicVars, $template);
     $template = str_replace('$REQUIRED_FIELDS$', implode(", ", $this->generateRequiredFields()), $template);
     $propertyTemplate = TemplateUtil::getTemplate("model.property", 'swagger-generator');
     $properties = SwaggerGenerator::preparePropertyFields($propertyTemplate, $fieldTypes);
     $template = str_replace('$PROPERTIES$', implode(",\n", $properties), $template);
     $templateData = str_replace('$DOCS$', $template, $templateData);
     return $templateData;
 }