Standard annotations library
A library of standard annotations will eventually be (but is not currently) part of this package.
Note
Experienced developers (primarily maintainers of libraries that rely on annotations), are encouraged to contribute or suggest changes or additions to the standard library.
The standard library of annotations generally belong to one (or more) of the following categories:
- Reflective annotations to describe aspects of code semantics not natively supported by the PHP language.
- Data annotations to describe storage/schema aspects of persistent types.
- Display annotations to specify input types, labels, display-formatting and other UI-related aspects of your domain- or view-models.
- Validation annotations to specify property/object validators for domain- or form-models, etc.
- PHP-DOC annotations - a subset of the standard PHP-DOC annotations.
Some of the annotations belong to more than one of these categories - the standard PHP-DOC annotations generally fall into at least one of the other categories.
Most of the standard annotations were referenced from annotations that ship with other languages and frameworks that support annotations natively, mainly .NET and Java. Due to the strict nature of these languages, as compared to the loose nature of PHP, the standard annotations were not merely ported from other languages, but adapted to better fit with good, modern PHP code.
Available Annotations
Note
The annotation library is not yet available, or still in development.
Category: Reflective, PHP-DOC
Annotation | Scope | Description |
---|---|---|
MethodAnnotation | Class | Defines a magic/virtual method. |
ParamAnnotation | Method | Defines a method-parameter’s type. |
PropertyAnnotation | Class | Defines a magic/virtual property and it’s type. |
PropertyReadAnnotation | Class | Defines a magic/virtual read-only property and it’s type. |
PropertyWriteAnnotation | Class | Defines a magic/virtual write-only property and it’s type. |
ReturnAnnotation | Method | Defines the return-type of a function or method. |
VarAnnotation | Property | Specifies validation of various common property types. |
TypeAnnotation | Property | Specifies validation of various common property types. |
Category: Display
Annotation | Scope | Description |
---|---|---|
DisplayAnnotation | Property | Defines various display-related metadata, such as grouping and ordering. |
EditableAnnotation | Property | Indicates whether a property should be user-editable or not. |
EditorAnnotation | Property | Specifies a view-name (or path, or helper) to use for editing purposes - overrides ViewAnnotation when rendering inputs. |
FormatAnnotation | Property | Specifies how to display or format a property value. |
TextAnnotation | Property | Defines various text (labels, hints, etc.) to be displayed with the annotated property. |
ViewAnnotation | Property/class | Specifies a view-name (or path) to use for display/editing purposes. |
Category: Validation
Annotation | Scope | Description |
---|---|---|
EnumAnnotation | Property | Specifies validation against a fixed enumeration of valid choices. |
LengthAnnotation | Property | Specifies validation of a string, requiring a minimum and/or maximum length. |
MatchAnnotation | Property | Specifies validation of a string against a regular expression pattern. |
RangeAnnotation | Property | Specifies validation against a minimum and/or maximum numeric value. |
RequiredAnnotation | Property | Specifies validation requiring a non-empty value. |
ValidateAnnotation | Class | Specifies a custom validation callback method. |