Constructor de formularios
Ligne viene con una pequeña clase llamada PhpFormBuilder que facilita la creación y salida de formularios como HTML o XHTML. Los formularios son tediosos y pueden ser difíciles de construir. Además, hay tantas opciones diferentes posibles que es fácil olvidar lo que puedes hacer con ellas.
Esta clase proporciona ventajas como;
Usos Básicos
Veamos un sencillo ejemplo de un formulario de inicio de sesión bastante básico y posteriormente explicaremos a fondo la funcionalidad de este poderoso constructor de formularios;
Lo primero que debemos hacer es utilizar la clase PhpFormBuilder en la cabecera de nuestra clase
use FormBuilder\PhpFormBuilder;
class LoginController extends Controller
{
//...
}
Una vez tenemos la clase incluida en nuestra cabecera comenzamos;
$login_form = new PhpFormBuilder();
//Atributos del formulario
$login_form->set_att('action', '/loginCheck');
$login_form->set_att('method', 'post');
$login_form->set_att('enctype', 'multipart / form-data');
//Agregando campo user name
$login_form->add_input('User',
array('placeholder' => 'User name',
'required' => 'true'),
'user_name');
//Agregando campo password
$login_form->add_input('Password',
array('type' => 'password',
'placeholder' => '*****',
'required' => 'true',),
'password');
//Agregando checkbox para recordar credenciales
$login_form->add_input('Remember me', array('type' => 'checkbox'), 'Remember_me');
//Agregando el boton submit
$login_form->add_input('Login',
array('type' => 'submit',
'value' => 'Login'),
'login');
//Enviardo datos a la vista
$data['form_login'] = $login_form->build_form();
$this->setData($data);
$this->render('login');
Ahora nuestra vista poseerá un formulario como este;
Este es un formulario sumamente sencillo de crear y elaborar gracias a constructor de formularios. Ahora veamos paso por paso cada función de lo que acabamos de ver:
1) instanciar la clase
Esto es bastante simple:
$login_form = new PhpFormBuilder();
Esto utiliza todas las configuraciones predeterminadas para el formulario, que son las siguientes:
Las explicaciones para cada uno de los ajustes serán explicadas en las siguientes páginas.
También puede crear una instancia pasando una URL, que se convierte en la acción del formulario:
$login_form = new PhpFormBuilder('http://example.com/loginCheck');
2) Cambie cualquier atributo del formulario, si lo desea
// Agregar un nuevo formulario action
$new_form->set_att('action', 'http://submit-here.com');
// Cambiar el método de envío
$new_form->set_att('method', 'get');
// Cambiar el enctype
$new_form->set_att('enctype', 'multipart/form-data');
// Se puede establecer en 'html' o 'xhtml'
$new_form->set_att('markup', 'xhtml');
// Las clases se agregan como una matriz
$new_form->set_att('class', array('class1', 'class2'));
// Agregar un id al formulario
$new_form->set_att('id', 'xhtml');
// Agrega el atributo HTML5 "novalidate"
$new_form->set_att('novalidate', true);
// Agrega un campo de WordPress nonce usando la cadena que se pasa
$new_form->set_att('add_nonce', 'build_a_nonce_using_this');
// Agrega un campo de texto oculto en blanco para el control de spam
$new_form->set_att('add_honeypot', true);
// Envuelve las entradas con un elemento de formulario
$new_form->set_att('form_element', true);
// Si no se agrega ningún tipo de envío, agregue uno automáticamente
$new_form->set_att('form_element', true);
Actualmente, existen algunas restricciones de los atributos (de los que vimos) que se pueden agregar, ni tampoco se comprueba si las clases o los identificadores son válidos, así que tenlo en cuenta/consideración.
3) Añade inputs a tu formulario
Los inputs o entradas se pueden agregar una a la vez o como un grupo. De cualquier manera, el orden en que se agregan es el orden en el que aparecerán.
El método para esto es add_input() este método recibe 3 parámetros;
Agregue campos usando su etiqueta (en forma legible por humanos), una variedad de configuraciones y un nombre / id slug, si es necesario.
Opciones
name
id
label
value
placeholder
class
options
min
max
step
autofocus
checked
required
add_label
wrap_tag
wrap_class
wrap_id
wrap_style
4) Obtener el formulario
Una declaración rápida produce el formulario como HTML:
$data['form_login'] = $login_form->build_form();