ppi/form

There is no license information available for the latest version (1.0) of this package.

1.0 2014-07-03 14:39 UTC

This package is not auto-updated.

Last update: 2024-04-27 12:48:57 UTC


README

Creating Elements

To create elements, you access the appropriate method for that element type. Alternatively you can use the underlying add() or addElement(ElementInteface $element) methods.

<?php
$form = new Form();
$form->text('username');

$form->password('password');
$form->password('confirm_password');

$form->submit('submit_button', 'Click to Continue');

Getting Elements

Getting the element when you make it

<?php
$form = new Form();
$usernameElement = $form->text('username');

Get the element at a later date

$form->text('username');
$usernameElement = $form->get('username');

Creating an element and setting attributes on it

<?php
$form = new Form();

$form->text('username')
    ->attr('class', 'username-field')
    ->attr('id', 'username-field');

Creating an element and setting its value

<?php
$form = new Form();
$form->text('username')->setValue($userEntity->getUsername());

Rendering Elements

Each element object has a __toString() method aliased to render() so you can just echo the objects to render them

Controller Code

<?php
$form = new Form();
// ... add elements
return $this->render('....', compact('form'));
?>

Template Code

<div class="username-container">
<?= $form->getElement('username'); ?>
</div>

Binding Data To Your Form

When toArray() is called on your entity, you will have a data key for username which will match the name of the text field added named username.

<?php
$form = new Form();
$form->text('username');

$entity = new UserEntity($userHelper->getByID($userID));
$form->bind($entity->toArray());

Creating custom elements

As long as your element imeple,ented ElementInteface then you can add it to the form.

<?php
$element = new CustomElement();
$element->setValue($someValue);
$element->attr('id', 'custom-element');

$form->addElement($element);

An example of your custom element

<?php

use PPI\Form\Element\ElementInterface;

class CustomElement implements ElementInterface
{
    protected $type = 'CustomElement';
    
    // .. implement the methods in ElementInterface
    
}