Download the PHP package sunnyflail/forms without Composer
On this page you can find all versions of the php package sunnyflail/forms. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package forms
Forms
A simple Form Abstraction layer
1 Creating forms
First create a class extending SunnyFlail\Forms\Form\FormElement
class.
It must implement method IFormElement::build
.
1.1 Adding Fields
Inside the IFormElement::build
method invoke IFormBuilder::add
, providing the field you want to add as an argument. You can chain this method.
1.2 Configuring form
Inside the ` method you can change properties *(Mandatory)*
string $formName- Name of the form - prefix which will be provided to form's field names
string $formMethod- HTTP method which this form will use (defaults to **GET**)
string $buttonText- Text which will be shown inside the submit button
array $attributes- Atttributes to be provided to the form Element
array buttonAttributes- Attributes provided to submit button Element of the form
IElement[] $topElements- Array of objects implementing
SunnyFlail\HtmlAbstraction\Interfaces\IElementinterface - Elements to be printed before all fields
IElement[] $middleElements- Array of objects implementing
SunnyFlail\HtmlAbstraction\Interfaces\IElementinterface - Elements to be printed before after fields, before button
IElement[] $bottomElements- Array of objects implementing
SunnyFlail\HtmlAbstraction\Interfaces\IElementinterface - Elements to be printed after submit button
string|null $classFQCN- FQCN of (Plain Old Php Object) class to which this form will resolve to, resolves to **array** if this is null
bool $useHtmlValidation- Should this form use Html Validation (defaults to **true**)
bool $withFiles` If set to true sets the enctype (encoding type) to multipart/form-data
2 Using forms
2.1 Creating builder
First you need to create a global copy of form builder
2.2 Building form
Then invoke IFormBuilder::buildForm
method providing form FQCN as first argument, and optionally object/array to scrape values from as second.
This returns a copy of Builder so prepare another variable for it
2.3 Processing user input
To process user provided data invoke IFormBuilder::processForm
using a object implementing Psr\Http\Message\ServerRequestInterface
interface as an argument
This will return a bool indicating whether form got valid values
2.4 Getting values
To get values scraped from form elements use IFormBuilder::getProcessedData
2.5 Adding errors
To add en error to form use IFormBuilder::addError
2.6 Rendering form
You can either just stringify (eg. echo $concreteFormBuilder;
) the form OR manually render all of the fields.
To render the form manually, first you need to get a copy of Form by calling IFormBuilder::accessForm
To get HTML form tag attributes call IFormElement::getHTMLAttributes
To get an associative array of fields call IFormElement::getFields
To get Fields Input element call IField::getInputElement
To get Fields Label element call IField::getLabelElement
Those methods may return an IElement OR and array of them
If an error occured you can get the error element with IField::getErrorElement
3 Available fields
3.1 InputField
This is representation of
Input field constructor takes parameters:
string $name
- Name of the field
string $type
- Field type
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $labelAttributes
- Array of html attributes to be provided to label Element
3.2 EmailField
This is representation of
Email field constructor takes parameters
string $name
- Name of the field
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $labelAttributes
- Array of html attributes to be provided to label Element
3.3 PasswordField
This is representation of
This field introduces Peeper
- a button which, when coupled with appriopriate JS, shows the password provided to the field
Password field constructor takes parameters:
string $name
- Name of the field
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
bool $withPeeper
- Whether this field should be rendered with an peeper
array $inputAttributes
- Array of html attributes to be provided to input Element
array $peeperAttributes
- Array of html attributes to be provided to peeper Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $labelAttributes
- Array of html attributes to be provided to label Element
3.4 TextAreaField
This is representation of <textarea></textarea>
TextArea field constructor takes parameters:
string $name
- Name of the field
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $labelAttributes
- Array of html attributes to be provided to label Element
3.5 SelectField
This is representation of <select>(...)</select>
Select field constructor takes parameters:
string $name
- Name of the field
array $options
- Options to render -
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
bool $multiple
- Should this field allow multiple values
bool $useIntristicValues
- Should this only check for values provided in $options parameter or should accept any value matching provided constraints
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $optionAttributes
- Array of html attributes to be provided to option Element
array $labelAttributes
- Array of html attributes to be provided to label Element
3.6 CheckBoxGroupField
This is representation of a group of
Checkbox field constructor takes parameters:
string $name
- Name of the field
array $options
- Options to render -
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
bool $multiple
- Should this field allow multiple values
bool $useIntristicValues
- Should this only check for values provided in $options parameter or should accept any value matching provided constraints
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
array $labelAttributes
- Array of html attributes to be provided to label Element
3.7 RadioGroupField
This is representation of a group of
Radio field constructor takes parameters:
string $name
- Name of the field
array $options
- Options to render -
bool $required
- Whether this field must be filled
bool $rememberValue
- Whether this field should retain provided value of error
bool $useIntristicValues
- Should this only check for values provided in $options parameter or should accept any value matching provided constraints
IConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
array $labelAttributes
- Array of html attributes to be provided to label Element
3.8 RepeatedInputField
A field containing two fields whose values must be the same
Repeated field constructor takes parameters:
IInputField $field
- First field
IInputField $repeatedField
- Repeated field
string $missmatchError
- Message to be displayed on error
3.9 ClassMappedField
A group of fields whose values will be mapped to an Plain Old Php Object
Class mapping field constructor takes parameters:
string $fieldName
- Name of the field
string $classFQCN
- Class name
IField ...$fields
- Fields with names defaulting to Class property names
3.10 FileUploadField
This is representation of
File upload field constructor takes parameters:
string $name
- Name of the field
bool $required
- Whether this field must be filled
bool $multiple
- Should this field allow multiple values
IFileConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IFileConstraint
interface
IElement[] $topElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before label
IElement[] $middleElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before input
IElement[] $bottomElements
- Array of objects implementing SunnyFlail\HtmlAbstraction\Interfaces\IElement
interface - Elements to be printed before error
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
?string $labelText
- Text to be shown inside label, if unset it shows the field name
array $labelAttributes
- Array of html attributes to be provided to label Element
bool $terminateOnError
- Whether http upload error of one of the files should make this field invalid
3.11 FileUploadGroupField [from version ^1.3]
A group of file upload fields
File upload field constructor takes parameters:
string $name
- Name of the field
int $inputCount
- How many inputs should this render - must be at least 1, if set to 1 this fields multiple property is set to false
int $required
- Minimal number of required files
IFileConstraint[] $constraints
- Array of objects implementing SunnyFlail\Constraints\Interfaces\IFileConstraint
interface
array $errorMessages
- Array of strings, keys must be numeric strings, '-1' is for no value error, positive keys are for failed constraint errors
string[] $labelTexts
- Text to be shown inside label, If set must be an incremental array with same amout of keys as set in $inputCount, otherwise shows numbers
array $inputAttributes
- Array of html attributes to be provided to input Element
array $containerAttributes
- Array of html attributes to be provided to wrapper Element
array $errorAttributes
- Array of html attributes to be provided to error Element
array $labelAttributes
- Array of html attributes to be provided to label Element
bool $terminateOnError
- Whether http upload error of one of the files should make this field invalid
4 TODO
I need to add an IFormBuilder::getRawValues
which would return an associative array of raw values provided to fields
All versions of forms with dependencies
sunnyflail/object-creator Version ^1.0
sunnyflail/assoc_shift Version 1.0.0
sunnyflail/constraints Version ^1.0