impreso / impreso
Impreso forms
v0.95
2015-05-30 15:26 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- pdepend/pdepend: 1.1.0
- phpunit/phpcov: *
- phpunit/phpunit: *
- satooshi/php-coveralls: dev-master
- sebastian/phpcpd: *
- squizlabs/php_codesniffer: 1.*
This package is not auto-updated.
Last update: 2024-04-24 10:22:58 UTC
README
Impreso
Impreso ("Form" en español o esperanto) is form library.
Usage
This is a basic example of using Impreso. There are quite a lot of code. The library will have simpler (and faster) interface to create forms, but at this moment, this element of library does not yet exists.
<?php use Impreso\Container\Form; use Impreso\Element\Button; use Impreso\Element\Text; use Impreso\Element\TextArea; use Impreso\Filter\LowerCaseFilter; use Impreso\Filter\TrimFilter; use Impreso\Renderer\DivRenderer; use Impreso\Validator\EmailValidator; use Impreso\Validator\RequiredFieldValidator; use Impreso\Validator\StringLengthValidator; include('../vendor/autoload.php'); /* Create form, set basic stuff */ $form = new Form(); $form->setMethod('post'); $form->setAction($_SERVER['REQUEST_URI']); /* Renderer is a object that's create render form into HTML */ $form->setRenderer(new DivRenderer()); /* Now we're creating some elements. Code is quite straightforward and no needs extra comment. */ $name = new Text('name'); $name->setLabel('Your name'); $name->addValidator(new RequiredFieldValidator('What is your name?')); $name->addFilter(new TrimFilter()); $email = new Text('email'); $email->setLabel('Your e-mail'); $email->addValidator(new RequiredFieldValidator('Do you have email? No? But you must have!')); $email->addValidator(new EmailValidator('Seriously? This is your e-mail?')); $email->addFilter(new LowerCaseFilter()); $message = new TextArea('message'); $message->setLabel('Message'); $message->addValidator(new StringLengthValidator("Your message can't be too short or too long. We need something about 10 - 200 characters.", 10, 200)); $button = new Button(); $button->setText('Send'); /* Add elements to form. */ $form->addElement($name); $form->addElement($email); $form->addElement($message); $form->addElement($button); /* Magic. :) */ if ($_SERVER['REQUEST_METHOD'] == 'POST') { $form->populate($_POST); if ($form->validate()) { /* Do something with form data, send mail, save to database. Anything you want. */ /* $data is an array, like $_POST, but unlike raw post data, $data is filtered. */ $data = $form->getData(); echo "Thank you {$data['name']}! Your message has been save in /dev/null :)"; exit(); } } echo $form;