Types
Of cause you can implement an AbstractProperty and overwrite all necessary methods. But the sunhill framework defines some predefined types and semantics.
The difference between types and semantics
A type is a basic format as you know from any programming language. So you have types like integer or string.
A semantic is the idea behind a value. A typical semantic is temperature or capcity. The semantic has always a type as a parent because a temperature would be always a float and a name is always a string.
Long story short: A semantic is a child of a type.
The basic types
Integer
Take a integer number like 1, -4 or 1234.
setMaximum(int $maximum): static
Sets a maximum value this property can be assiged.
getMaximum(): int
Returns the current maximum value this property can be assigned to.
setMinimum(int $minimum): static
Sets a minimum value this property can be assigned.
getMinimum(): int
Returns the current minimum value this property can be assigned to.
setOutOfBoundsPolicy(string $policy): static
When assigning a value that is lower than minimum or higher than maximum the behaviour of this property is defined by the out-of-bounds-policy:
- set = If the value is lower than minmum it is set to minimum, if higher than maximum it is set to maximum.
- invalid = If the value if lower than minimum or higher than maximum an inavlidValueException() is thrown.
getOutOfBoundsPolicy(): string
Returns the current out-of-bound-policy.
Float
Takes a floating point numer like 1.2, -0.2, 3.
setMaximum(int $maximum): static
Sets a maximum value this property can be assiged.
getMaximum(): int
Returns the current maximum value this property can be assigned to.
setMinimum(int $minimum): static
Sets a minimum value this property can be assigned.
getMinimum(): int
Returns the current minimum value this property can be assigned to.
setOutOfBoundsPolicy(string $policy): static
When assigning a value that is lower than minimum or higher than maximum the behaviour of this property is defined by the out-of-bounds-policy:
- set = If the value is lower than minmum it is set to minimum, if higher than maximum it is set to maximum.
- invalid = If the value if lower than minimum or higher than maximum an inavlidValueException() is thrown.
getOutOfBoundsPolicy(): string
Returns the current out-of-bound-policy.
Boolean
Takes only a boolean value like true or false.
Date
Takes a date as value like 2004-10-23.
DateTime
Takes a timestamp value like 2004-10-23 12:22:10.
Time
Take a time value like 12:22:10
Enum
Take one of some predefined string values.
String
Takes a sequence of characters like "Hello this is a string".
Text
The same a string besides that it can take any count of characters.
Blob
Takes a sequence of bytes (not only readable characters).