neondigital/forma

A nice way to play with forms in Laravel 4/5 and indeed any PHP project.
1,198
Install
composer require neondigital/forma
Latest Version:1.0.0-beta
PHP:^8.1
License:MIT
Last Updated:Apr 19, 2024
Links: GitHub  ·  Packagist
Maintainer: neondigital

Forma

IN DEVELOPMENT - But feel free to have a play!

A nice way to play with forms in both Laravel 4 and PHP. Does not require Laravel to be used.

Requires PHP 5.4+

For non-Laravel usage use the following format for calls.

use Forma\Forma;

$forma = new Forma();
echo $forma->email('email')->id('inputEmail')->required();

Clever Features

  1. Auto-repopulation from Input::get() or Input::old() if value not provided
  2. Auto-labels either prepended or wrapped
  3. Checkboxes submit even if not checked (hidden input hack)
  4. Language file support for label and option text
  5. Nest tags within tags
  6. Automatic ID creation for labels and fields
  7. Chaining of methods to quickly do what you need and force it to behave a certain way
  8. Add select options manually and from arrays, great for making a 'Please select' option

Examples


Forma::populate($user);

Forma::open('user','GET')->class('glenn')->class('bob')->attr('id','sweet');

Forma::open_secure('article')->files();

Forma::text('first_name','glenn<$@£$T£!^;')->class('form-control')->attr('id','first_name');

Forma::text('last_name')->id('inputLast')->forceEmpty();

Forma::email('email')->id('inputEmail')->required();

Forma::password('password')->id('inputPassword')->allowValue();

Forma::input('color')->type('color')->id('inputColor');

Forma::checkbox('confirm',1)->checked();

Forma::open()->child(Forma::checkbox('confirm',1)->omitHidden());

Forma::label()->child(Forma::checkbox('confirm'));

Forma::checkbox('confirm')->withLabel('Please Confirm');

Forma::checkbox('confirm')->id('sweeeetID')->withLabel('Please Confirm');

Forma::input('color')->type('color')->id('inputColor')->withLabel('Pick a color');

Forma::checkbox('confirm')->id('inputConfirm')->wrap('Option One',array('class'=>'checkbox'));

Forma::hidden('secret','thing');

Forma::token();   // Laravel only

Forma::textarea('secret','thi>ng<dd')->rows(10);

Forma::radio('choice')->id('inputChoice')->wrap('Option One',array('class'=>'radio'));

Forma::file('image')->id('inputFile')->wrap('Select Image');

Forma::text('last_name')->id('inputLast')->placeholder('Enter last name');

Forma::text('last_name')->id('inputLast')->placeholder('auth.login_failed');

Forma::label('auth.login_failed');

Forma::label('<i class="fa fa-pound"></i> Price')->rawText();

Forma::select('country')->option('- Please Select -')->option('UK',1,true)->withLabel('Select Country');

Forma::select('country')->options(array('1' => 'United Kingdom', '2' => 'France', '3' => 'USA' ));

Forma::select('town', array('1' => 'Chelmsford', '2' => 'Brentwood', '3' => 'Colchester' ), 2);

Forma::checkbox('cake',1);

Forma::button('Click me!!', 'submit')->class('btn btn-primary');

Forma::submit('submit_btn','Save Changes');

Forma::close();

Related Packages

hewcode/hewcode

Inertia table and form builders.

1 0
lara-zeus/bolt

Zeus Bolt is form builder for your users, with so many use cases

50,755 242
avnsh1111/filament-dynamic-form-builder

Filament v4 plugin: fully functional dynamic form builder (create, render, colle...

139 2
lara-zeus/matrix-choice

Zeus Matrix Choice multiple choice grid component form for filamentPHP

33,149 27
arpite/arpite

An open-source Laravel library for building high-quality, accessible application...

196 5