PHPackages                             arastta/form - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. arastta/form

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

arastta/form
============

Arastta Form Component

1.1.0(10y ago)61.5k↓55.6%3GPL-3.0PHPPHP &gt;=5.3.0

Since Nov 21Pushed 7y ago3 watchersCompare

[ Source](https://github.com/arastta/form)[ Packagist](https://packagist.org/packages/arastta/form)[ Docs](http://arastta.org)[ RSS](/packages/arastta-form/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (5)DependenciesVersions (6)Used By (0)

Arastta Form Component
----------------------

[](#arastta-form-component)

Form component provides rapid development of forms through an object-oriented PHP structure.

Elements
--------

[](#elements)

It can create a variety of elements including Textboxes, Textareas, Checkboxes, Selectboxes, Date inputs, Color inputs and so on. The current version has more than 34 elements. Additionaly, it has support for 13 HTML 5 form elements: Phone, Search, Url, Email, DateTime, Date, Month, Week, Time, DateTimeLocal, Number, Range, and Color. Each of these fallback to textboxes in the event that the HTML5 input type isn't supported in the user's web browser.

Validation
----------

[](#validation)

For browsers that support HTML5 it will do simple client side data validation before the form is submitted (for example, required field). But most of validations are server-sided based (look at Validation classes inside Validation folder). To do the server side validation you must call the method isValid() when the form is submitted, redirecting the page if it returns false. In this case, when the form is show again, it will be automatically filled with data recovered from the user session, and validation errors will be presented in red.

Views
-----

[](#views)

With the Views functionality it is possible to arrange form elements in horizontal, vertical, inline or search layouts.

Usage
-----

[](#usage)

```
use Arastta\Component\Form\Form;
use Arastta\Component\Form\Element;

$options = array("Option #1", "Option #2", "Option #3");

$form = new Form("my-form");

$form->addElement(new Element\Hidden("form", "form-elements"));
$form->addElement(new Element\HTML('Standard'));
$form->addElement(new Element\Textbox("Textbox:", "Textbox"));
$form->addElement(new Element\Password("Password:", "Password"));
$form->addElement(new Element\File("File:", "File"));
$form->addElement(new Element\Textarea("Textarea:", "Textarea"));
$form->addElement(new Element\Select("Select:", "Select", $options));
$form->addElement(new Element\Radio("Radio Buttons:", "RadioButtons", $options));
$form->addElement(new Element\Checkbox("Checkboxes:", "Checkboxes", $options));
$form->addElement(new Element\HTML('HTML5'));
$form->addElement(new Element\Phone("Phone:", "Phone"));
$form->addElement(new Element\Search("Search:", "Search"));
$form->addElement(new Element\Url("Url:", "Url"));
$form->addElement(new Element\Email("Email:", "Email"));
$form->addElement(new Element\Date("Date:", "Date"));
$form->addElement(new Element\DateTime("DateTime:", "DateTime"));
$form->addElement(new Element\DateTimeLocal("DateTime-Local:", "DateTimeLocal"));
$form->addElement(new Element\Month("Month:", "Month"));
$form->addElement(new Element\Week("Week:", "Week"));
$form->addElement(new Element\Time("Time:", "Time"));
$form->addElement(new Element\Number("Number:", "Number"));
$form->addElement(new Element\Range("Range:", "Range"));
$form->addElement(new Element\Color("Color:", "Color"));
$form->addElement(new Element\HTML('jQuery UI'));
$form->addElement(new Element\JQueryUIDate("Date:", "JQueryUIDate"));
$form->addElement(new Element\Checksort("Checksort:", "Checksort", $options));
$form->addElement(new Element\Sort("Sort:", "Sort", $options));
$form->addElement(new Element\HTML('Custom/Other'));
$form->addElement(new Element\State("State:", "State"));
$form->addElement(new Element\Country("Country:", "Country"));
$form->addElement(new Element\YesNo("Yes/No:", "YesNo"));
$form->addElement(new Element\Captcha("Captcha:"));
$form->addElement(new Element\Button);
$form->addElement(new Element\Button("Cancel", "button", array(
    "onclick" => "history.go(-1);"
)));

$form->render();
```

Installation via Composer
-------------------------

[](#installation-via-composer)

Add `"arastta/form": "~1.0"` to the require block in your composer.json and then run `composer install`.

```
{
	"require": {
		"arastta/form": "~1.0"
	}
}
```

Alternatively, you can simply run the following from the command line:

```
composer require arastta/form "~1.0"
```

License
-------

[](#license)

This project is based on PFBC (PHP Form Builder Class) and released under the [GPLv3 license](LICENSE.txt).

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 65.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~35 days

Total

5

Last Release

3725d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5254835?v=4)[Denis Dulici](/maintainers/denisdulici)[@denisdulici](https://github.com/denisdulici)

![](https://avatars.githubusercontent.com/u/10936547?v=4)[Cüneyt Şentürk](/maintainers/cuneytsenturk)[@cuneytsenturk](https://github.com/cuneytsenturk)

![](https://www.gravatar.com/avatar/bbd283b593c5ee73e6216a38d623d209cd382384bc4e81a674ae63221d4c6634?d=identicon)[burakcakirel](/maintainers/burakcakirel)

---

Top Contributors

[![burakcakirel](https://avatars.githubusercontent.com/u/3121372?v=4)](https://github.com/burakcakirel "burakcakirel (17 commits)")[![denisdulici](https://avatars.githubusercontent.com/u/5254835?v=4)](https://github.com/denisdulici "denisdulici (7 commits)")[![cuneytsenturk](https://avatars.githubusercontent.com/u/10936547?v=4)](https://github.com/cuneytsenturk "cuneytsenturk (2 commits)")

---

Tags

builderformarastta

### Embed Badge

![Health badge](/badges/arastta-form/health.svg)

```
[![Health](https://phpackages.com/badges/arastta-form/health.svg)](https://phpackages.com/packages/arastta-form)
```

###  Alternatives

[kris/laravel-form-builder

Laravel form builder - symfony like

1.7k2.3M46](/packages/kris-laravel-form-builder)[kevinchappell/form-builder

jQuery formBuilder

2.7k7.1k2](/packages/kevinchappell-form-builder)[kartik-v/yii2-builder

Build forms (single-row or multi-row/tabular) easily for Yii Framework 2.0

961.2M33](/packages/kartik-v-yii2-builder)[lara-zeus/bolt

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

24045.3k3](/packages/lara-zeus-bolt)[inkvizytor/fluentform

Form builder for Laravel

3316.4k](/packages/inkvizytor-fluentform)[laraform/laraform-laravel

Laraform Community Edition (Laravel)

1437.2k](/packages/laraform-laraform-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
