PHPackages                             soliantconsulting/formidable-bootstrap - 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. soliantconsulting/formidable-bootstrap

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

soliantconsulting/formidable-bootstrap
======================================

Twitter Bootstrap 3 integration for Formidable

0.1.2(9y ago)0292MITPHP

Since Sep 13Pushed 9y ago3 watchersCompare

[ Source](https://github.com/soliantconsulting/SoliantFormidableBootstrap)[ Packagist](https://packagist.org/packages/soliantconsulting/formidable-bootstrap)[ RSS](/packages/soliantconsulting-formidable-bootstrap/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (3)Versions (4)Used By (0)

Formidable Bootstrap
====================

[](#formidable-bootstrap)

This package supplies a selection of view helpers to ease rendering of forms with [Formidable](https://github.com/DASPRiD/Formidable) and [Twitter Bootstrap 3](https://getbootstrap.com/). By default, it ships with a factory to use the helpers in [Plates](http://platesphp.com/), but the view helpers can also be used in other template engines which support callables.

The supplied view helpers have a very opinionated HTML output. If you need a different kind of output, this library is not for you, and you should write your own helpers.

Installation
------------

[](#installation)

Install via composer:

```
$ composer require soliantconsulting/formidable-bootstrap
```

Usage
-----

[](#usage)

Here is a simple example for using the different view helpers in your templates:

```

    formErrors($form->getGlobalErrors()); ?>

    inputText('Name', $form->getField('name')); ?>
    inputText('Color', $form->getField('color'), 'color'); ?>
    inputPassword('Password', $form->getField('password')); ?>
    textarea('Notes', $form->getField('notes')); ?>
    select('Role', $form->getField('role'), ['user' => 'User', 'admin' => 'Admin']); ?>
    select('Groups', $form->getField('role'), ['alpha' => 'Alpha', 'beta' => 'Beta'], true); ?>
    select('Country', $form->getField('country'), [
        'Europe' => [
            'de' => 'Germany',
            'fr' => 'France',
        ],
        'America' => [
            'ca' => 'Canada',
            'us' => 'United States',
        ],
    ]); ?>
    checkbox('Active', $form->getField('active')); ?>

```

As you can see, some view helpers take additional optional parameters. The `inputText()` helper takes an type as third parameter, By default, it will render a generic `text` input, but you can change it to any other input type.

The `select()` view helper takes a boolean as last argument, which indicates whether it should be `multiple` or not. The mandatory `options` array can either be a simple string to string map, or contain nested arrays like in the country example to generate option groups, which can be nested indefinitely.

If you need to separate your form into fieldsets, you can do that manually. There is no need for any additional helpers there. When you have a child object in your form which can get errors assigned, so that they are not associated with a specific field, you can pull the errors from a pseudo field and pass them to the `formErrors()` view helper:

```

    Address

    formErrors($form->getField('address')->getErrors()); ?>

    inputText('Street', $form->getField('address.street')); ?>
    inputText('City', $form->getField('address.city')); ?>
    inputText('Zipcode', $form->getField('address.zipcode')); ?>

```

Custom error messages
---------------------

[](#custom-error-messages)

By default, the view helpers use error messages supplied by Formidable itself. If you want to use different messages or have your own constraints with custom error messages, you add additional messages via configuration:

```
return [
    soliant_formidable_bootstrap => [
        'messages' => [
            'error.custom' => 'Some custom error',
        ],
    ],
];
```

The messages follow the same pattern used by Formidable's [`ErrorFormatter`](https://formidable.readthedocs.io/en/latest/built-in-helpers/#errorformatter).

###  Health Score

26

—

LowBetter than 40% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% 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 ~11 days

Total

3

Last Release

3602d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8b53976b59f7ed97c10b8e8be44c4d7410b6642047f70a96a5b59c73916d093a?d=identicon)[jeremiahsmall](/maintainers/jeremiahsmall)

---

Top Contributors

[![DASPRiD](https://avatars.githubusercontent.com/u/233300?v=4)](https://github.com/DASPRiD "DASPRiD (3 commits)")[![jeremiahsmall](https://avatars.githubusercontent.com/u/814871?v=4)](https://github.com/jeremiahsmall "jeremiahsmall (3 commits)")

### Embed Badge

![Health badge](/badges/soliantconsulting-formidable-bootstrap/health.svg)

```
[![Health](https://phpackages.com/badges/soliantconsulting-formidable-bootstrap/health.svg)](https://phpackages.com/packages/soliantconsulting-formidable-bootstrap)
```

###  Alternatives

[azuracast/azuracast

The AzuraCast self-hosted web radio station management suite.

4.0k27.9k](/packages/azuracast-azuracast)[api-clients/command-bus

Light weight wrapper around league/tactician adding promised based interface(s) and next tick execution

11198.3k4](/packages/api-clients-command-bus)[michaels/data-manager

Simple data manager for nested data, dot notation array access, extendability, and container interoperability.

132.0k2](/packages/michaels-data-manager)

PHPackages © 2026

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