This package has some internal structures which are used to analyze data objects and their properties. They can be
helpful when writing casts, transformers or rule inferrers.
##DataClass
The DataClass represents the structure of a data object and has the following properties:
name
the name of the data class
properties
all the DataProperty
's of the class (more on that later)
methods
all the magical creation DataMethod
s of the class (more on that later)
constructorMethod
the constructor DataMethod
of the class
isReadOnly
is the class read only
isAbstract
is the class abstract
appendable
is the class implementing AppendableData
includeable
is the class implementing IncludeableData
responsable
is the class implementing ResponsableData
transformable
is the class implementing TransformableData
validatable
is the class implementing ValidatableData
wrappable
is the class implementing WrappableData
emptyData
the the class implementing EmptyData
attributes
a collection of resolved attributes assigned to the class
dataCollectablePropertyAnnotations
the property annotations of the class used to infer the data collection type
allowedRequestIncludes
the allowed request includes of the class
allowedRequestExcludes
the allowed request excludes of the class
allowedRequestOnly
the allowed request only of the class
allowedRequestExcept
the allowed request except of the class
outputMappedProperties
properties names which are mapped when transforming the data object
transformationFields
structure of the transformation fields
##DataProperty
A data property represents a single property within a data object.
name
the name of the property
className
the name of the class of the property
type
the DataPropertyType
of the property (more on that later)
validate
should the property be automatically validated
computed
is the property computed
hidden
will the property be hidden when transforming the data object
isPromoted
is the property constructor promoted
isReadOnly
is the property read only
hasDefaultValue
has the property a default value
defaultValue
the default value of the property
cast
the cast assigned to the property
transformer
the transformer assigned to the property
inputMappedName
the name used to map a property name given
outputMappedName
the name used to map a property name onto
attributes
a collection of resolved attributes assigned to the property
##DataMethod
A data method represents a method within a data object.
name
the name of the method
parameters
all the DataParameter
's and DataProperty
s of the method (more on that later)
isStatic
whether the method is static
isPublic
whether the method is public
isCustomCreationMethod
whether the method is a custom creation method (=magical creation method)
returnType
the DataType
of the return value (more on that later)
##DataParameter
A data parameter represents a single parameter/property within a data method.
name
the name of the parameter
isPromoted
is the property/parameter constructor promoted
hasDefaultValue
has the parameter a default value
defaultValue
the default value of the parameter
type
the DataType
of the parameter (more on that later)
##DataType
A data type represents a type within a data object.
Type
can be a NamedType
, UnionType
or IntersectionType
(more on that later)
isNullable
can the type be nullable
isMixed
is the type a mixed type
kind
the DataTypeKind
of the type (more on that later)
##DataPropertyType
Extends from the DataType
and has the following additional properties:
isOptional
can the type be optional
lazyType
the class of the lazy type for the property
dataClass
the data object class of the property or the data object class of the collection it collects
dataCollectableClass
the collectable type of the data objects
kind
the DataTypeKind
of the type (more on that later)
##DataTypeKind
An enum representing the kind of type of a property/parameter with respect to the package:
- Default: a non package specific type
- DataObject: a data object
- DataCollection: a
DataCollection
of data objects
- DataPaginatedCollection: a
DataPaginatedCollection
of data objects
- DataCursorPaginatedCollection: a
DataCursorPaginatedCollection
of data objects
- DataArray: an array of data objects
- DataEnumerable: a
Enumerable
of data objects
- DataPaginator: a
Paginator
of data objects
- DataCursorPaginator: a
CursorPaginator
of data objects
##NamedType
Represents a named PHP type with the following properties:
name
the name of the type
builtIn
is the type a built-in type
acceptedTypes
an array of accepted types as string
kind
the DataTypeKind
of the type (more on that later)
dataClass
the data object class of the property or the data object class of the collection it collects
dataCollectableClass
the collectable type of the data objects
isCastable
wetter the type is a Castable
##UnionType / IntersectionType
Represents a union or intersection of types with the following properties:
types
an array of types (can be NamedType
, UnionType
or IntersectionType
)