Documentation Index
Fetch the complete documentation index at: https://docs.apivalk.com/llms.txt
Use this file to discover all available pages before exploring further.
Property Types
Apivalk provides several built-in property classes:| Class | Description | PHP Type | OpenAPI Type |
|---|---|---|---|
StringProperty | Plain textual data | string | string |
EnumProperty | String restricted to a set | string | string |
IntegerProperty | Whole numbers | int | integer |
FloatProperty | Decimal numbers | float | number |
DateProperty | Date values (YYYY-MM-DD) | \DateTime | string |
DateTimeProperty | Date-time values (ISO 8601) | \DateTime | string |
ByteProperty | Base64-encoded data | string | string |
BinaryProperty | Raw binary data | string | string |
BooleanProperty | True/False values | bool | boolean |
ArrayProperty | List of items | array | array |
AbstractObjectProperty | Nested object structure | array | object |
Base Configuration
All properties share a common set of configuration methods:setIsRequired(bool $required): Whether the property must be present.setExample(string $example): A sample value for OpenAPI documentation.addValidator(AbstractValidator $validator): Add custom validation logic.
Specific Features
StringProperty
setMinLength(int)/setMaxLength(int)setPattern(string): Regex validation.
EnumProperty
Restricts a string value to a predefined set of allowed values. The enum values are passed as the third constructor argument.
setEnums(array): Update the list of allowed values.setDefault(string): Set a default value.
IntegerProperty
For whole numbers. Supports int32 and int64 formats (default: int64).
setMinimumValue(int)/setMaximumValue(int)setIsExclusiveMinimum(bool)/setIsExclusiveMaximum(bool)setFormat(string):IntegerProperty::FORMAT_INT32orIntegerProperty::FORMAT_INT64.
FloatProperty
For decimal numbers. Supports float and double formats (default: double).
setMinimumValue(float)/setMaximumValue(float)setIsExclusiveMinimum(bool)/setIsExclusiveMaximum(bool)setFormat(string):FloatProperty::FORMAT_FLOATorFloatProperty::FORMAT_DOUBLE.
DateProperty
Represents a date value in YYYY-MM-DD format. Automatically sets the OpenAPI format to date and includes a built-in pattern.
setDefault(string): Set a default date value.
DateTimeProperty
Represents a date-time value in ISO 8601 / RFC 3339 format. Automatically sets the OpenAPI format to date-time and includes a built-in pattern.
setDefault(string): Set a default date-time value.
ByteProperty
For base64-encoded data. Automatically sets the OpenAPI format to byte.
setMinLength(int)/setMaxLength(int)setPattern(string): Regex validation.
BinaryProperty
For raw binary data (e.g., file uploads). Automatically sets the OpenAPI format to binary.
setMinLength(int)/setMaxLength(int)setPattern(string): Regex validation.
ArrayProperty
setItemProperty(AbstractProperty): Defines the type of items within the array.
AbstractObjectProperty
- Used to define nested schemas. You extend this class and implement the
getPropertyCollection()method to define the nested properties.
Validation Integration
When a property is instantiated, it automatically creates a corresponding validator via theValidatorFactory. This validator is used by the RequestValidationMiddleware to ensure incoming data matches your definitions.
Each property type has its own dedicated validator (e.g., StringValidator, IntegerValidator, FloatValidator, EnumValidator, DateValidator, DateTimeValidator, ByteValidator, BinaryValidator), ensuring type-specific validation rules are applied automatically.